问题描述
大家好!
我今天正在做一个制作电子商务网站的项目(为我的学习提供练习)。 我目前正在控制管理员可以创建的不同条目(创建产品、品牌等)
为了制作我的控件,我使用了 express-validator,这里是我的不同表格及其参数:
客户:
产品:
品牌 ID:
- 品牌名称
- 徽标网址
还有更多
我想知道验证从电子商务网站插入的数据的有效性的常用方法。 比如对于用户,我在创建账号的时候验证,密码,邮箱,名字都填好了(.notEmpty())
我不知道我的问题是否合适,但提前感谢您的回答!
祝您有个美好的一天/晚上。
解决方法
所以这个答案对你来说可能听起来很公然,也许没什么新意。但是您应该验证来自客户端的所有内容。您只需查看您在表单中发送的内容或提出请求时发送的内容。有关一般准则,您可以阅读:https://owasp.org/www-project-top-ten/
有很多部分,不仅包括安全性,还包括可靠性等等,它们看起来是一样的,但实际上却不同,并且真正取决于您的业务需求和用例。但是我会根据我多年来在 Web 开发中观察到的内容写出我自己的建议,请记住,我的陈述不是唯一的真理或唯一的方法或最佳实践,因此您应该持保留态度,请自行研究并做出明智的决定。
最基本的事情是:
清理和验证来自客户端的数据。
如果可能,设置一些值的预定义最大长度。
检查数据库中是否存在实体,例如用户名、产品或产品数量等。
始终使用当前推荐的密码加密。
现在可以是更具体的业务和可靠性部分(这些只是建议):
建议:
用户名只能包含字母和/或数字
用户名、电子邮件不区分大小写。
禁止使用非常相似的用户名创建客户,例如:John 或 J0hn。
另外一个我要给的建议是看看一些开源项目以及这些事情是如何在那里完成的,这些项目非常大,所以肯定会花费你一些时间,但它可能会让你更好地了解如何大多数电子商务网站都可以正常工作。
我真的觉得这个问题和答案更适合 softwareengineering.stackexchange.com。但无论如何只是想提供帮助:)