求一段php+mysql防注入代码
程序员文章站
2023-12-27 11:28:09
...
MySQL PHP 防注入 网上找了很多个。大部分都 报错。或者防注入功能不能用。
这应该是每个获取的值都进行处理的吧,有没有只要包含了一个文件自动过滤,像asp的枫叶防注入一样的?
回复讨论(解决方案)
if (get_magic_quotes_gpc()) { $lastname = stripslashes($_POST['lastname']);}else { $lastname = $_POST['lastname'];}// 如果使用 MySQL$lastname = mysql_real_escape_string($lastname);$sql = "INSERT INTO lastnames (lastname) VALUES ('$lastname')";
if (get_magic_quotes_gpc()) { $lastname = stripslashes($_POST['lastname']);}else { $lastname = $_POST['lastname'];}// 如果使用 MySQL$lastname = mysql_real_escape_string($lastname);$sql = "INSERT INTO lastnames (lastname) VALUES ('$lastname')";
这应该是每个获取的值都进行处理的吧,有没有只要包含了一个文件自动过滤,像asp的枫叶防注入一样的?
你可以将它封装成函数,传值调用就方便了。
建议你看看韩顺平的防注入视频 名字叫《PHP数据库编程陷阱视频教程》。http://php.itcast.cn/news/5805c1ea/1b18/41eb/8fcc/6234659d8b40.shtml这是连接。
你可以将它封装成函数,传值调用就方便了。
是的,但函数调用起来比较麻烦,每个获取的值都写一次。
mysqli 和 PDO 都提供了数据绑定,不需要再自己处理
不过自己应该对自己负责任,怕麻烦可是不行的
提供一个方法,对提交的变量等进行关键字过滤。
$perl="/select|update|delete|insert|alter/iUs";
$str=preg_replace($perl,"",$str);