基于Pikachu测试平台的SQL注入漏洞防范措施

代码层面

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 = stmt= pdo->prepare($sql);//先不传参,先预处理
然后这个时候再把参数传进去
s t m t > e x e c u t e ( a r r a y ( stmt->execute(array( username,$password));
//以索引组的方式把参数传进去,而不是拼接,就成功防止了注入

在web应用服务器前部署WAF设备:topo
启动云端防护
攻击者dns解析到云厂商提供的IP时,当流量通过云端转发到真实的服务器上去时,云端防护集群,提供云WAF,DDOS清洗,SDN加速的功能

发布了13 篇原创文章 · 获赞 1 · 访问量 250

猜你喜欢

转载自blog.csdn.net/qq_43499389/article/details/104970590