php防止sql注入的程序设计
2015-12-29 15:31
423 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/liwenming910/article/details/50427066
正确的防止sql注入:(1)找到所有的sql注入漏洞。(2)修补这些漏洞
sql注入的防御不是一件简单的事,技术一般常常会走入一些误区,比如只对用户的输入做一些escape处理,这是非常不够的,在php中,很多是用mysql_real_escape_string。但是这是可能被绕过的,那是不是再增加一些过滤字符就可以了呢,比如处理空格,括号,select,insert等。其实这种基于黑名单的方式,都或多或少存在一些问题。而在sql的保留字中,像having,order by等都可能出现在自然语言中,从而造成误杀。正确的做法是使用预编译语句,在php中可以用:
$stmt = $mysqli->prepare();
$stmt->bind_param();
关于具体语法请查看手册,这里不再详述。
使用预编译的sql语句,sql语句的语义不会发生改变。在sql语句中,变量用?表示,攻击者无法改变sql的结构。
除了使用预编译语句外,还可以使用安全的存储过程对抗sql注入。检查数据类型。
总结:在php中使用预编译sql语句及检查数据类型是最好的方式。
第三方扩展:利用pdo操作数据库是一种好的避免sql注入的方式。
相关文章推荐
- php防止SQL注入详解及防范(输入过滤,输出转义)
- php特殊字符防止xss攻击以及sql注入
- php防止sql注入
- php防止sql注入简单分析
- php防止SQL注入详解及防范
- 转:php防止sql注入的一点心得
- PHP + Mysql 登录功能防止SQL注入的一个办法
- PHP中该怎样防止SQL注入?
- 转:PHP中防止SQL注入的方法
- php中防止SQL注入的最佳解决方法
- php防止SQL注入详解及防范
- php防止sql注入的方法详解
- php处理sql注入问题 如何防止双重转义
- 浅析php过滤html字符串,防止SQL注入的方法
- php防止SQL注入详解及防范
- 浅析php过滤html字符串,防止SQL注入的方法
- PHP最全防止sql注入方法
- PHP登录环节防止sql注入实例详解
- 模仿laravel关于php防止sql注入操作疑问
- php中防止SQL注入的方法