筛选SQL查询的SQL查询字符串 - PHP

时间:2011-01-05 13:24:51

标签: php sql-injection xss

我已经获得了一个最近使用SQL注入攻击的网站。根据我的收集情况,Havij自动SQL注入器用于将代码插入到URL的查询字符串参数中。

该网站是一个自定义的CMS版本,有点过时了。我认为不可能完全重建。

防止这种情况再次发生的最佳方法是什么?我是一名PHP开发人员,但通常只是在表单上进行验证,或者使用已经内置此功能的系统 - wordpress,codeigniter,drupal等。

感谢任何想法或想法。

由于

3 个答案:

答案 0 :(得分:3)

只有一个简单的规则:每个变量(无论来自哪里 - 来自用户,或者它是已经从数据库获得的东西)被放入sql查询应该是之前使用mysql_real_escape_string()进行了清理。

或者你可以使用准备好的查询(预备语句/占位符),无所谓。

答案 1 :(得分:2)

您可能无法更改所有代码,但也许您可以更改数据库代码。如果是这样,尝试使用PDO和准备好的语句。我建议使用pdo,因为您没有指定数据库类型。如果您使用的是mysql,我认为mysqli还提供了预备语句。

答案 2 :(得分:0)

$ url = filter_var($ url,FILTER_SANITIZE_URL);