SQL注入
就是攻击者把SQL命令插入到web表单的输入域或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
SQL注入原理:
攻击者在向应用程序提交输入时,通过构造恶意的SQL语句,最终改变应用开发者定义的SQL查询语句的语法和功能
SQL注入的本质: SQL使用拼接的方法,可注入恶意SQL语句改变原本执行逻辑
SQL注入的防御
1、检查变量数据类型和格式
1)数据类型进行严格定义,数据长度进行严格规定
2)对输入进行严格的转义和过滤
2、过滤特殊符号
对于无法确定固定格式的变量,一定要进行特殊符号过滤或者转义处理。
3、绑定变量,使用预编译语句(最佳方式)
预编译语句就是将一条可能反复执行的SQL语句中的值用占位符替代,可以视为将SQL语句模块化或者说参数化,一般称这类语句叫Prepared Statements或者 Parameterized Statements
预编译语句的优势:
一次编译、多次运行,省去了解析优化等过程;此外预编译语句能防止sql注入
SQL注入检测方法
寻找SQL注入
SQL注入的步骤
1)识别web应用于数据库交互的可能输入(识别潜在注入点