网站地图    收藏   

主页 > 后端 > 网站安全 >

实践有效的网站防SQL注入(一) - 网站安全 - 自

来源:自学PHP网    时间:2015-04-17 13:03 作者: 阅读:

[导读] 几年前,网站中大多数都存在sql注入。sql注入在这几年可以说已经被广大网站管理者所认知,并在搭建网站的时候都能注意到网站防注入这一问题,但为什么我们EeSafe现在收录的网站中...

几年前,网站中大多数都存在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防注入漏洞过滤函数(现成的过滤函数可以在:http://www.2cto.com/Article/201204/126788.html上面找到)和PHP防注入漏洞过滤函数(现成的过滤函数可以在:http://www.2cto.com/Article/201204/126789.html上面找到)。
2.加强数据层(也就是数据库方面加强防注入手段)。在网站和数据库进行连接时(也就是连接池)使用的用户具有普通权限就可以了,不要使用超级用户或数据库所有者的账号。对提交数据的类型和格式进行严格检查,确保数据类型符合要求,比如用mysql数据库系统函数isnumberic()判断传到数据库中的值是否是数字。另外在连接数据库时尽量使用sssl或ssh。
其他构架的网站也和上面的相同,只是不同的构架防范细节侧重点不同。当然,你可以下载使用本地版的EeSafe网站安全检测工具,选择相应的构架对你的网站进行源代码级的注入检测,该软件提供对PHP,ASP,.NET,JSP等多种构架的检测。并且现在可以通过申请得到正式版注册号。好了,虽然现在网上有很多介绍网站防sql注入的文章,但我想通过本篇你会对防注入有一个更全面的认识,能够给网站的开发和运营带来帮助。

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论