脚本注入 – 表单validation(jquery)

我在我的网站上使用几种forms将数据发送到MySQL。

如果我不希望用户通过我的表单向数据库发送任何脚本,那么validation表单的最佳方式/方法是哪种?

忘了jQuery。 您无法使用客户端上运行的任何东西来确保安全 – 客户端始终可以覆盖它。

您需要处理服务器上的数据。 请参阅如何在PHP中阻止SQL注入? 保护您的数据库以及在PHP站点中避免xss攻击以保护您的页面的最佳做法是什么 。

这是一个充满问题的问题……而且涵盖的范围可以超过一个答案。

如果您必须按照一般性条款提出问题,我强烈建议您找一位导师来帮助您,因为这不是您真正想要学习的主题。

已经提出了几个类似的问题,我强烈建议你去寻找它们并阅读它们。 此外,在这个和/或以特定产品为中心的社区中寻找一些高质量的博客文章,这些产品与您正在构建的产品类似,以了解他们是如何做到的。

在此期间的一些提示:

  • 我注意到了jquery标签…… JavaScriptvalidation应该是你看到的第二件事,更多的是为用户提供即时反馈。 因为它可以在客户端关闭,所以您不能依赖任何JavaScriptvalidation。
  • 严格检查服务器上的数据类型。 如果你应该得到一个号码,请确保它真的是一个数字。 如果是其中一个选项,请选中并仅接受可用选项。
  • 不要只接受表单控件中的数据 – 即使它是一个选择框或一个隐藏字段。 人们用你的表单数据玩傻傻的玩家,你不能依靠回到你认为你会回来的东西。

要防止SQL注入,请使用预准备语句 。 要防止HTML注入,请查看htmlspecialcharshtmlentitiesstrip_tags和filter函数,或使用第三方库删除所有白名单标签和属性。