PHP sql security


PHP sql security

我在变量上使用mysql_real_escape_string(),但是查看我的日志,我注意到有人输入了这样的条目:

${@print(md5(acunetix_wvs_security_test))}
1'" or (sleep(4)+1) limit 1 -- 

等等。他们中的一大堆。

他只是尝试而什么也没发生吗?还是我的代码仅使用 mysql_real_escape_string() 不安全?

编辑:我看不到任何损坏,但网站上的大多数输入区域都已尝试了很多次。如果它一次不起作用,意识到它是安全的,他不会停下来吗?

这些条目来自 Acunetix Web 漏洞扫描(有关详细信息,请参阅 http://www.acunetix.com/vulnerability-scanner/)。

简而言之,这只是一个机器人,可以在您的网站上运行并测试已知的安全问题。至于你的问题,他只是在尝试。即使您的网站容易受到攻击,扫描程序也不会尝试破坏任何东西,只需将漏洞报告给测试人员即可。

也许稍后再次检查日志是个好主意,因为自动扫描可能是某人的自动信息收集,然后他尝试使用他从自动扫描中获得的信息手动攻击您的网站。但我不知道您的应用程序有多重要。

编辑:不,扫描仪不会停止。这些扫描仪不是很聪明,不会尝试从以前的结果中学习。他们只处理定义的攻击列表,并在他们能找到的每个输入/参数上尝试它们。

似乎有人正在使用 acunetix 可信赖性扫描仪扫描您的网站。您能看到数据库数据中的任何更改吗?如果是这样,他就成功了。

该工具非常强大,旨在查找脚本上的大量漏洞。

仅仅依靠 mysql_real_escape_string() 搜索并重新构建网站是不够的。入侵脚本的方法有很多,而不仅仅是 mysql 注入。

阅读更多关于PHP和MYSQL安全性的信息。

如果你一直使用mysql_real_escape_string,你应该对SQL注入是安全的。

请注意,mysql_query将来被弃用,您不应该再使用它。