在检查可否注入的时候输入and 1=1和 and 1=2 都返回正常页面是怎么一回事?
这说明这个ASP网站后台不是用SQL命令来更新数据库的,比如:
rs("a") = "and 1 = 1"
rs("b") = "and 1 = 2"
rs.update
这样不管你输入什么试探性的命令(包括单引号、双引号),它都会当作字符串直接给数据库相应字段赋值。这种方法虽然在效率上比用SQL命令差些,但可以打消别人试图注入的一切幻想。追问
rs("a") = "and 1 = 1"
rs("b") = "and 1 = 2"
rs.update
这样不管你输入什么试探性的命令(包括单引号、双引号),它都会当作字符串直接给数据库相应字段赋值。这种方法虽然在效率上比用SQL命令差些,但可以打消别人试图注入的一切幻想。追问
如果这个ASP网站后台不是用SQL命令来更新数据库那该怎么办?真的要打消注入的幻想么?
追答在纯查询功能的文本框(比如站内搜索框),还是有可能注入的。
还有一种情况是这样:如果网站本身有防注入功能,把类似“and 1=1”这样的字符自动过滤了(因为正常的SQL查询语句是不可能有这样的表达式的),那么也会返回正常页面的。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2013-05-12
更新数据库,后台可以直接用参数调用存储过程的方式。
这样做,甚至根本不需做任何判断,字串参数,就直接存入数据库。根本不管输入的是什么字符。
这样做,甚至根本不需做任何判断,字串参数,就直接存入数据库。根本不管输入的是什么字符。