最常见的是;“最佳”;如何对PHP表单进行sanatize和验证?
在多次尝试以PHP形式编写一个可以sanatize/validate$\u POST[“input”]的代码之后,我不得不问一下这个问题,因为每次尝试都没有达到我的预期效果。我真的尝试了很多,两个月前我才开始练习编码(html、css、bootstrap、wordpress、php)。我希望您能告诉我,正如您所看到的,对php表单进行sanatize的最常见或“最好”的方法是什么 我重新编写了一些OOP PDO表单验证,当我将其集成到新主页时无法运行,因为我的OOP技能=0 它是用类构建的,但我没有看到任何准备好的语句,这让我很惊讶,因为准备好的语句在网络上被崇拜 哪种方法更好?你能告诉我为什么吗 我希望你能回答我的问题,并解释一下我如何以“专业的方式”处理它,这在最好的情况下是安全的,因为这对我来说是一个障碍最常见的是;“最佳”;如何对PHP表单进行sanatize和验证?,php,forms,validation,pdo,prepared-statement,Php,Forms,Validation,Pdo,Prepared Statement,在多次尝试以PHP形式编写一个可以sanatize/validate$\u POST[“input”]的代码之后,我不得不问一下这个问题,因为每次尝试都没有达到我的预期效果。我真的尝试了很多,两个月前我才开始练习编码(html、css、bootstrap、wordpress、php)。我希望您能告诉我,正如您所看到的,对php表单进行sanatize的最常见或“最好”的方法是什么 我重新编写了一些OOP PDO表单验证,当我将其集成到新主页时无法运行,因为我的OOP技能=0 它是用类构建的,但我
感谢您的帮助。首先,在任何情况下,您都不应该将验证和“消毒”联系起来。这是两件完全不同的事情 验证确实必须应用于表单数据,没有通用的方法。只需使用您的常识、业务逻辑需求和框架指南 而“消毒”则是另一回事。甚至这个词本身也是PHP人最大的错误,经常被误用和混淆 最好的“消毒”方法是根本不消毒。因为
要为其他目的地格式化数据,您必须遵守它们的规则。再说一遍,不是“发布表单”,而是所有数据,不管其来源如何。关于“你的常识”的答案绝对正确 因此,您应该首先验证表单(客户端),有许多小型验证库,例如: 发布时,您必须检查这些数据是否与您预期的一致。 电子邮件只是一封电子邮件,名称只是一个没有XSS或SQL注入的字符串 所以这取决于目的地,就像上面的答案所说的 要过滤某些post值,例如: 您还可以针对sql注入和XSS之类的东西使用完整的框架或库。您应该使用MySQLi编写的语句和其他一些东西来对付XSS,比如:HTMLPurifier
这些只是一些例子,如果您感兴趣,我建议您阅读本页:1。我指的是验证,例如给出输入属性(最小/最大长度、不允许的字符等)