【发布时间】:2009-11-01 15:46:11
【问题描述】:
我在我的网站上使用多种表单将数据发送到 MySQL。
如果我不想让用户通过我的表单向数据库发送任何脚本,那么验证我的表单的最佳方式/方法是什么?
【问题讨论】:
-
这个描述太模糊了。当您说“您使用几种形式发送数据”时,您是什么意思?表单是否回传到执行实际交互的中间脚本,或者是否有一些彻头彻尾的可怕事情,比如直接传递到 MySQL?
我在我的网站上使用多种表单将数据发送到 MySQL。
如果我不想让用户通过我的表单向数据库发送任何脚本,那么验证我的表单的最佳方式/方法是什么?
【问题讨论】:
忘记 jQuery。你不能使用客户端上运行的任何东西来保证安全——客户端总是可以覆盖它。
您需要处理服务器上的数据。请参阅 How can I prevent SQL injection in PHP? 以保护您的数据库和 What are the best practices for avoiding xss attacks in a PHP site 以保护您的页面。
【讨论】:
这是否曾经是一个加载的问题...并且涵盖的内容超出了一个答案的范围。
如果您必须按您所做的一般术语提出问题,我强烈建议您找一位导师来帮助您,因为这不是您真正想边做边学的主题。
已经提出了几个类似的问题,我强烈建议您找出并阅读它们。此外,寻找一些关于此的高质量博客文章和/或以与您正在构建的产品相似的特定产品为中心的社区,看看他们是如何做到的。
在此期间的一些提示:
jquery 标记... JavaScript 验证应该是您关注的第二件事,并且更多地是为用户提供即时反馈的一种方式。因为它可以在客户端关闭,所以您不能依赖正在执行的任何 JavaScript 验证。【讨论】:
为防止 SQL 注入,请使用prepared statements。为防止 HTML 注入,请查看 htmlspecialchars、htmlentities、strip_tags 和 filter 函数,或使用第三方库去除除白名单之外的所有标签和属性。
【讨论】: