几年前,网站中大多数都存在sql注入。sql注入在这几年可以说已经被广大网站管理者所认知,并在搭建网站的时候都能注意到网站防注入这一问题,但为什么我们EeSafe现在收录的网站中,还是有很大一部分存在sql注入问题?我想并不是由于网站站长不知道sql注入的危害(危害我这里就不说了,大家可以去百度等搜索引擎上查找),而是由于网站对于像sql注入这样的问题的防范和发掘不够深造成的,这里我把防范sql的黄金方法和大家交流一下,应该能够在网站防止安全漏洞的方面起到推波助澜的作用,至于如何发掘,我会在后篇提及。
能够防范sql注入的好方法(注意,我这里说的是“防范”)只有一个,那就是强化网站开发过程中的安全流程,有人说上硬件,那我要问上什么硬件?防火墙?DDOS防攻击?安全网关?这些基本上都防不住,或者个别的有防注入功能但至于效果怎么样,我就不多说了。我接触的最有效的方法只有一种:加强网站开发过程中的代码编写,安全测试流程。由于负责编写程序的程序员水平和经验参差不齐,绝大多数程序员并没有接受过安全开发培训,所以在网站开发过程中要去进行安全方面的考量是不太现实的,这也就造成了到现在还有那么多网站存在大量的安全隐患的局面,所以不仅是防sql注入,防任何网站安全问题都要从开发流程和方法上着手。
那怎样着手防止,给大家几个建议和方法。
首先明确自己要假设网站的技术架构,截止发文在eesafe网站安全联盟上收录的网站使用ASP或asp.net加MSSQL这样的构架站52%,PHP+MYSQL的占35%。
其次根据选择的不同架构做不同的安全解决方案。
比如如果你的网站使用PHP+MYSQL开发的(现在流行的大多数CMS发布系统都是采用PHP)。
1.加强脚本层(也就是在PHP方面加强防注入手段)。使用Php.ini的magic_quotes_gpc选项。在开发过程中凡是需要接受用户输入的位置使用addslashes函数、intval函数,htmlspecialchars函数,htmlentities函数,并加入javascript防注入漏洞过滤函数(现成的过滤函数可以在eesafe网络安全交流区里找到)和PHP防注入漏洞过滤函数(现成的过滤函数可以在eesafe网络安全交流区里找到)。
评论