我在PHP中搜索了很多有关表单验证的内容。不幸的是,所有有关验证机制的教程都是关于特定字段的,例如名称,邮件或日期。使用正则表达式可以很容易地检查这些字段中的用户输入是否正确。但是,检查联系我们的文本eareara或评论字段等自由字段的最佳方法是什么?特别是在评论字段中,用户还应该使用“ <”,““>”或“'”之类的“危险”字符。
处理用户输入的最佳方法是什么?从逻辑上讲,将用户数据纯粹存储在数据库中是个坏主意。但是,阻止诸如“ <”,““>”或“'”之类的字符也是一个坏主意。
我在PHP中看到了一个名为htmlspecialchars()
的函数。许多网站都说,用用户输入来调用此功能就足够了。在我看来,如果不进行更多检查,此解决方案确实很冒险。
有人对我有什么提示,我如何在不降低“可用性”的情况下安全地验证用户输入?谢谢。
答案 0 :(得分:1)
但是检查自由字段(如联系我们的文本eareara或评论字段)的最佳方法是什么?特别是在评论字段中,用户还应该使用“ <”,““>”或“'”之类的“危险”字符。
您可以为每个危险字符使用if (strpos($string, '<') !== false)
(其中“危险”是特定于域的)。
处理用户输入的最佳方法是什么?从逻辑上讲,将用户数据纯粹存储在数据库中是个坏主意。但是,阻止诸如“ <”,““>”或“'”之类的字符也是一个坏主意。
输入验证没有神奇的灵丹妙药。您必须知道代码对数据的处理方式,才能确定哪些是安全的,哪些是不安全的。 LDAP查询与SQL查询,XPath查询或文件系统路径具有不同的安全要求。
如果出于安全性原因而寻找更通用的输入验证库,Ionizer值得一试。