如何测试SQL注入是否被阻止?

时间:2011-01-09 17:56:23

标签: php sql

我如何测试SQL注入是否在我的网站上的文本框中不起作用?

5 个答案:

答案 0 :(得分:8)

使用一种机制来保证设计不可能,比如绑定参数。然后不需要测试(对于SQL注入阻力)。

换句话说:不要依赖ad-hoc转义代码;很可能你不会100%正确。

答案 1 :(得分:1)

只需输入此字符串:

'";

如果没有进行转义,这肯定会破坏您的SQL。

有关详细信息,请参阅this site about better Stringsthis question

答案 2 :(得分:1)

您通常必须考虑输入字段中的数据将如何达到实际选择。一旦你知道你试图看到你可以在该字段中放入什么类型的文本来终止sql语句并启动另一个。

例如,如果你在代码中执行了类似的操作:'select * from table where id = ' . $_GET['id']我用script.php?id=0%20OR%20true; drop table table;打电话给你,我可以执行两个语句。

但总的来说,你应该避免通过连接来构造选择。最好使用有界参数作为另一个响应者的建议。

答案 3 :(得分:1)

您可以使用此列表针对您的代码创建攻击:http://ha.ckers.org/sqlinjection/

您还可以汇编“危险”字符和字符组合的列表,并从中创建(伪)随机输入值。

答案 4 :(得分:0)

通常检查是在字段中添加所有特殊符号,然后查看是否存在SQL错误。如果没有错误并且记录正确地插入到DB中 - 那很好。