来源
表单输入或者url传参
常见攻击方式
';
和--
SELECT * FROM adv where title='zhangsan';DROP TABLE article--'
引号和分号是为了隔离前面的sql语句,后面的--代表注释。因为最后一个'
可能会影响删表,所以使用注释不影响执行删表。注意:最后一个引号来自代码封装:原语句可能如下的写法:
$sql = "SELECT * FROM adv where title='".$_GET['title']."'";
#这句php代码因为title本身是被引号的
';'
+or
+ --
SELECT * FROM adv where title='zhangsan' or DROP TABLE article--'
注意:在PHP中的 mysql_query() 是不允许执行多个SQL语句的,但是还是可以通过or and 等语句来执行。
预防sql注入
safe_mode = on
;