本页为「SQL注入」栏目汇总页,汇集了SQL注入方向的核心笔记。以下为独立专题,其后为整合进来的相关短篇笔记。
独立专题
- 常用函数
- sql注入步骤
- union注入和information_schema库
- 函数和报错注入
- SQL盲注
- 其他注入方式
- Access数据库注入
- MSSQL数据库注入
- MYSQL数据库注入
- 神器SQLmap
防止SQL注入解决方案
解决SQL注入问题的关键是对所有可能来自用户输入的数据进行严格的检查、对数据库配置使用最小权限原则。通常修复使用的方案有:
代码层面:
-
对输入进行严格的转义和过滤
-
使用参数化(Parameterized):目前有很多ORM框架会自动使用参数化解决注入问题,但其也提供了"拼接"的方式,所以使用时需要慎重!
-
PDO预处理 (Java、PHP防范推荐方法:) 没有进行PDO预处理的SQL,在输入SQL语句进行执行的时候,web服务器自己拼凑SQL的时候有可能会把危险的SQL语句拼凑进去。但如果进行了PDO预处理的SQL,会让MYSQL自己进行拼凑,就算夹带了危险的SQL语句,也不会进行处理只会当成参数传进去,而不是以拼接进SQL语句传进去,从而防止了SQL注入。 PDO数据库抽象层学习:***.com
网络层面:
-
通过WAF设备启用防SQL Inject注入策略(或类似防护系统)
-
云端防护(360网站卫士,阿里云盾等)