如何防止SQL注入攻击
SQL注入攻击(SQL Injection),是攻击者在表单中提交精心构造的sql语句,改动原来的sql语句,如果web程序没有对提交的数据经过检查,那么就会造成sql注入攻击。
SQL注入攻击的一般步骤:
(1) 攻击者访问有SQL注入漏洞的站点,寻找注入点
(2) 攻击者构造注入语句,注入语句和程序中的sql语句结合生成新的sql语句
(3) 新的sql语句被提交到数据库中执行处理
(4)数据库执行了新的sql语句,引发SQL注入攻击
主要的防范方法:
(1) 严格检查输入参数的数据类型:例如:运用intval函数将数据转换成整数;运用floatval或doublebval函数分别转换单精度和双精度浮点型参数;运用addslashes函数来将单引号转换成\’,双引号转换成\”,反斜杠转换成\\,NULL字符加上反斜杠\
(2) 数据入库时,所有数据做转义或绑定的操作。
推荐的MySql转义函数: mysqli_real_escape_string、PDO::quote()