English
 电子信箱
 加入收藏

  威盾防火墙 >> 支持与下载 >> 技术文章 >> 用PHP开发的网站如何防御 SQL 注入

 

用PHP开发的网站如何防御 SQL 注入

威盾防火墙 2014-12-05

 

1. mysql和mysqli的方式永远有防不胜防的漏洞,你自己去过滤字符串,那些16进制,64进制的怎么搞,过滤这个相当的复杂,并且也低效,以前大家都过滤字符串,那是没有办法,现在有办法了不用什么心态。建议以后都不要用这样的方式。
2. 有效的方式只有占位符,原理就是告诉数据库我这里的一串东西就是字符串,永远不可能是sql,也就是后来php 才支持的pdo。

给两个办法,匈牙利命名法、注入尝试探测。

一、别瞧不起匈牙利命名法,这货的原意可不是你以为的傻瓜一样在变量名后加上类型名。真正的做法是:未做escape过滤的字符串命令按照你自己的习惯命名,escape后的字符串加上类似_f或_ss这样的suffix。习惯后在写代码的时候自然就会要求传入的字符串都是过滤过的。

二、注入尝试探测则比较简单:作为黑客来说如果需要进行攻击,会进行多次注入尝试,期间几乎可以肯定会构造出一个无效的sql语句,执行时就会报错了。自己写个数据库的query函数进行封装,如果发现有执行无效的sql语句则通过邮件或其他形式进行报警。



相关内容: 最新内容:
见招拆招:绕过WAF继续SQL注入常用方法[2014-12-05]
SQL注入防御:用三种策略应对SQL注入攻击[2014-12-05]
防范sql注入式攻击PHP代码实例[2014-12-05]
SQL注入攻击及其防范检测技术研究[2014-12-05]
PHP中SQL注入与跨站攻击的防范[2014-12-05]
PHP安全编程:防止SQL注入[2014-12-05]
见招拆招:绕过WAF继续SQL注入常用方法[2014-12-05]
SQL注入防御:用三种策略应对SQL注入攻击[2014-12-05]
防范sql注入式攻击PHP代码实例[2014-12-05]
SQL注入攻击及其防范检测技术研究[2014-12-05]
PHP中SQL注入与跨站攻击的防范[2014-12-05]
PHP安全编程:防止SQL注入[2014-12-05]