- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
网站脚本攻防对立的防御浅析.doc
网站脚本攻防对立的防御浅析
廖坚先
摘 要 面对网站被攻击的问题,本文对网站脚本的安全作了浅析。文章从黑客对网站脚本这一层面的攻击进行分析并引出脚本的安全防御。
关键词:脚本攻击,脚本防御,网站安全
一、引言
随着技术的进步,安全意识的提高,网站被非法入侵破坏的数量相比以前大有减少,但是现今网站的安全问题仍不容乐观。据国家互联网应急中心的2010上半年网络安全报告显示:2010年上半年中国大陆地区被篡改的网站数量14907个,平均起来就是每天大约54个网站被篡改。这些只是被篡改的,那没有篡改网站而别有用心的呢?还有个问题就是有一大批网站是使用开源的整站程序,那么只要一发现漏洞就有一大批网站存在被攻击的危险。
为什么会出现这种情况呢?第一,互联网上仍存在着很多老的网站系统,它们往往在开发初期就没有考虑安全功能,所以架构上就存在安全问题,补了表面上看得见的,那看不到的呢?总有一天会被黑客挖掘出来。第二,安全意识虽然得到了普及,但是不强,很抽象,因为开发者不了解黑客的攻击手法,就不够了解危害的大小,没有一个危机感。而导致这个问题出现的原因是只普及了正面性的理论化的大道理,而没有普及实际性细节化问题的提出和解决的文章或者书籍。第三,成批的纯拿来主义者,拿来了开源的整站程序就用而不进行安全审核。
二、对网站脚本程序的受攻击及防御的分析
攻防是对立的,有攻才有防。所以想更好的防御要换位思考从黑客的角度来看攻击然后形成防御思维。那黑客的思维是怎样的呢?首先,黑客是有目的的而实现目的都是需要更高的权限,那怎样获得更高的权限呢?进后台或者上传木马,怎样可以进得了后台或者传木马呢?SQL注入,上传漏洞···
下面笔者将对现今存在较普遍的黑客攻击思维进行分析并提出如何防御这种攻击。
(一)注入攻击
笔者对注入攻击进行了再分类,注入攻击可再分为SQL注入攻击、可执行代码注入攻击,非可执行代码注入攻击这三类。
1.SQL注入攻击
SQL注入攻击就是构造SQL语句通过过滤不严的参数提交到SQL请求中来达到黑客想要的目的。
面对这种攻击,我们一般的较为普遍的做法是统一的对用户数据的提交进行过滤,如当时在网上普遍流传的asp通用防注入系统。但是在早期的版本当中作者忽略了对cookie的过滤,导致可以通过cookie提交的方式来达到sql注入。所以用户数据的提交不仅仅是GET,POST方式还有COOKIE。
客户端进行服务请求是提交HTTP请求数据包的,而HTTP请求数据包里面不仅仅包含前面提交的三种类型数据,还包含了协议包的通用信息头,假如你的程序需要用到这些数据同时要带入SQL语句那就存在危险了,因此只对GET,POST和COOKIE的数据进行过滤的话也还是不够的。数据包是可以伪造之后再使用nc工具提交的。如某BBS整站系统的setup.asp文件中一段代码如下:协议包的通用信息头中的“HTTP_REFERER”直接带进了SQL请求,黑客可以构造多个SQL语句来达到他们想要达到的目的。有人会认为如果SQL SERVER配置的较安全不支持多句执行的话就没戏了。但是假如刚好在某处就有一个鸡肋的漏洞可以利用到这个漏洞注入到数据库的内容呢?毕竟注入进去的内容是没有经过过滤的。所以这里要提出的是即使很小的安全隐患也应该保持足够的谨慎。
笔者认为面对这种攻击最小的防御方法是统一对带入SQL语句的“GET”,“POST”,“COOKIE”三种方式提交的数据转义单引号。在ASP当中使用replace替换一个单引号为两个进行转义。在提交的参数类型为整数型的要判断是否为整数型,是的话再转换为整数型数据,对协议包的通用信息头的参数也如此。在PHP中,先判断PHP是否配置打开了magic_quotes_gpc,不是的话就用addslashes函数对所有的GET、POST和COOKIE数据进行转义。
在PHP中做到这一点还不够,因为还可能存在宽字节注入漏洞。当MYSQL配置文件或者在脚本上设置了连接MYSQL数据库使用宽字节的字符编码时,即使单引号会被转义但当用户在构造注入语句的单引号之前加上一个特殊字符,这个字符的字节第一位为1也就是用十六进制表示时是80后(注:大于或等于80)的一个字符,这时候程序会把这个字节跟下一个字节也就是“\”组成一个宽字节字符,这样就解放了单引号导致了注入漏洞。如黑客可以这样突破特殊字符转义注入test.php?name=test%80’ or 1=1%23(注:%23为#的编码,注释掉后面的SQL语句)。这时应该设置连接数据库使用的字符集binary(注:使用语句mysql_query(set character_set_client=binary); )。
2.可执行代码注入攻击和非可执行代码注入攻击
这两种攻击跟SQL注入攻击类似只是这
您可能关注的文档
最近下载
- 王力《古代汉语》教案.doc
- 排球大单元教学计划18课时.doc VIP
- 开学第一课(课件)七年级英语上册(人教版2024).pptx VIP
- 2024年GD省生态环境监测专业技术人员大比武模拟试卷及答案-3应急监测.pdf VIP
- 鸿蒙HarmonyOS应用开发者高级认证练习题及答案01.docx
- 文献检索的方法以及技巧ppt课件.docx VIP
- 2024年某省生态环境监测专业技术人员大比武模拟试卷及答案-3应急监测.pdf VIP
- 2025年乡镇农技站高标准农田建设管理员招聘面试题库附答案.doc VIP
- 锚杆长度检测课件.pptx VIP
- 2025年乡镇农技站高标准农田建设管理员招聘面试专项练习含答案.doc VIP
文档评论(0)