SQL Inject注入漏洞的防范:
代码层面
- 对输入进行严格的转义和过滤
- 使用预处理和参数化(Parameterized )
网路层面
- 通过WAF设备启用防SQL Inject注入策略(或类似防护系统)
- 云端防护(360网站卫士,阿里云盾等)
代码层面:
PHP防范转义+过滤
但其实效果并不是太好。
因为数据库版本会更新的,
已更新后可能会产生新的函数,新的语法,
那么就意味着存在新的注入点,
那么之前的代码防范又全部要更新,
这是一个极其麻烦的过程。
推荐的做法:使用PDO的prepare预处理(预处理+参数化)
这个啥意思。
这里的意思是说,
先对输入的东西做个处理,
然后按照一种特殊的形式传进去,
这个时候传进去的,被当作一个整体,不会再有分开来执行的效果,
同时许多数据库语言也支持参数化,这是较为安全,方便的。
SQL Inject注入漏洞的防范-网络防护
直接让黑客随便搞,
然后用一堵防火墙将所有的注入语句隔离掉。
最好从代码静态和网络动态多方面防护。