我已经阅读了很多关于消毒用户输入的利弊的辩论,但无论如何,这似乎都不是一个明确的答案。
我的方案是我通过HTML / jQuery表单收集电子邮件地址,以便这些电子邮件地址可以在邮件列表中使用。在此阶段不会从数据库中检索,因此不使用JSON,XML等。
我是否需要担心消毒用户输入?很多人似乎都说不需要在途中进行卫生处理,而其他人则说你永远不应该低估消毒的必要性。
有没有人会有任何想法让这更清楚?
答案 0 :(得分:1)
此时有两件事情很重要:
请参阅此处的SQL注入文档:
http://php.net/manual/en/security.database.sql-injection.php
答案 1 :(得分:1)
始终这样做。这只需要几分钟的时间。它确实没有缺点。为何冒风险?
答案 2 :(得分:1)
消除任何和所有输入,无论它是否将用于输出,总是一个好主意,原因很简单,因为它是输入,因此以某种方式通过代码/编译器/系统/等。您可能不需要(根据您的使用案例)验证所有输入(例如,电子邮件地址格式的电子邮件地址与其是有效/可用的电子邮件地址),但至少要确保一组最小的清理功能,以防止XSS和SQL注入。
答案 3 :(得分:0)
应清理所有用户输入。您不能相信用户只提交有效的输入。这不是它的工作方式。总会有人试图测试代码中的弱点。
这也适用于电子邮件地址。在将数据提交到数据库之前,您应该验证它是否是有效的电子邮件地址。
答案 4 :(得分:0)
根据用例和数据类型,清理需求确实有所不同。例如,您要求用户提供电子邮件地址。您可能需要查看邮件列表中是否已存在该电子邮件。如果你没有,没问题。如果您需要避免重复,并且您的邮件列表系统不支持它自己的清除重复数据删除,则通常是安全的并且建议:
答案 5 :(得分:0)
输入验证是指在使用之前验证应用程序的所有输入的过程。 输入验证对应用程序安全性至关重要,大多数应用程序风险都涉及某种程度的污染输入。 许多应用程序不计划输入验证,并将其留给各个开发人员。 这是灾难的一个方法,因为不同的开发人员肯定都会选择不同的方法,许多人只是为了追求更有趣的开发而放弃它。
了解详情:Data Validation