我目前有一个相当强大的服务器端验证系统,但我正在寻找一些反馈以确保我已经涵盖了所有方面。以下是我目前正在做的事情的简要概述:

  • 确保输入不为空,或者太长
  • 转义查询字符串以防止 SQL 注入(inject)
  • 使用正则表达式拒绝无效字符(这取决于提交的内容)
  • 对某些 html 标签进行编码,例如 (所有标签都在存储在数据库中时进行编码,有些在查询以在页面中呈现时进行解码)

  • 有什么我想念的吗?欢迎代码示例或正则表达式。

    最佳答案

    您不需要“转义”查询字符串来防止 SQL 注入(inject)——您应该使用准备好的语句。

    理想情况下,您的输入过滤将在任何其他处理之前发生,因此您知道它将始终被使用。因为否则你只需要错过一个容易出现问题的地方。

    不要忘记在输出时对 HTML 实体进行编码 - 以防止 XSS 攻击。

    关于php - 全面的服务器端验证,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/146839/

    10-13 04:49