本文将从sql注入风险说起,并且比较addslashes、mysql_escape_string、mysql_real_escape_string、mysqli和pdo的预处理的区别。
当一个变量从表单传入到php,需要查询mysql的话,需要进行处理。
举例:
$unsafe_variable = $_POST['user_input'];
mysqli_query("INSERT INTO table (column) VALUES ('" . $unsafe_variable . "')");
用户可以输入诸如 : value'); DROP TABLE table;-- ,SQL语句就变成这样了:
INSERT INTO table (column) VALUES('value'); DROP TABLE table;--')
执行的结果就是table表被删掉了。
这是一种常见的sql注入方法,那么在程序中,应该怎样预防呢?
thinkphp 301转向(或叫301重定向 |
|
|
dedecms织梦后台登陆出现空白解决办法 |