代码层面
1.对输入进行严格的转义和过滤
2.使用预处理和参数化
网络层面
1.通过WAF设备启用防SQL注入策略(或类似防护系统)
2.云端防护(360网站卫士,阿里云盾等)
推荐做法:使用PDO的prepare预处理(预处理+参数化)
PDO:PHP DATA OBJECT是一种统一的,各种数据库的访问接口
前端传入过来参数,当你去进行数据库操作的时候,在PDO里面,它去写sql的时候,不会直接把参数传进去,而是用参数化的占位符的方式去写这个参数
$pdo=new PDO(‘mysql:host=localhost;dbname=ant’,‘root’,‘root’);
$sql=“select * from admin where username=? and password=?”;
他去跟数据库交互的时候,他会通过预处理把这一段用占位符代替参数内容的这样一条sql语句,去跟数据库的驱动去交付,进行预处理,先把sql的这条逻辑进行执行跟编译
s t m t =