java攻击⽹页_WEB前端常见受攻击⽅式及解决办法
⼀个⽹站建⽴以后,如果不注意安全⽅⾯的问题,很容易被⼈攻击,下⾯就讨论⼀下⼏种漏洞情况和防⽌攻击的办法。
⼀、SQL注⼊
所谓SQL注⼊,就是通过把SQL命令插⼊到Web表单提交或输⼊域名或页⾯请求的查询字符串,最终达到欺骗服务器执⾏恶意的SQL命令。具体来说,它是利⽤现有应⽤程序,将(恶意)的SQL命令注⼊到后台数据库引擎执⾏的能⼒,它可以通过在Web表单中输⼊(恶意)SQL 语句得到⼀个存在安全漏洞的⽹站上的数据库,⽽不是按照设计者意图去执⾏SQL语句。⽐如先前的很多影视⽹站泄露VIP会员密码⼤多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注⼊式攻击。
原理:
web前端和java哪个难SQL注⼊攻击指的是通过构建特殊的输⼊作为参数传⼊Web应⽤程序,⽽这些输⼊⼤都是SQL语法⾥的⼀些组合,通过执⾏SQL语句进⽽执⾏攻击者所要的操作,其主要原因是程序没有细致地过滤⽤户输⼊的数据,致使⾮法数据侵⼊系统。
根据相关技术原理,SQL注⼊可以分为平台层注⼊和代码层注⼊。前者由不安全的数据库配置或数据库
平台的漏洞所致;后者主要是由于程序员对输⼊未进⾏细致地过滤,从⽽执⾏了⾮法的数据查询。基于此,SQL注⼊的产⽣原因通常表现在以下⼏⽅⾯:
①不当的类型处理;
②不安全的数据库配置;
③不合理的查询集处理;
④不当的错误处理;
⑤转义字符处理不合适;
⑥多个提交处理不当。
防护:
1.永远不要信任⽤户的输⼊。对⽤户的输⼊进⾏校验,可以通过正则表达式,或限制长度;对单引号和双"-"进⾏转换等。
2.永远不要使⽤动态拼装sql,可以使⽤参数化的sql或者直接使⽤存储过程进⾏数据查询存取。
3.永远不要使⽤管理员权限的数据库连接,为每个应⽤使⽤单独的权限有限的数据库连接。
4.不要把机密信息直接存放,加密或者hash掉密码和敏感的信息。
5.应⽤的异常信息应该给出尽可能少的提⽰,最好使⽤⾃定义的错误信息对原始错误信息进⾏包装
6.sql注⼊的检测⽅法⼀般采取辅助软件或⽹站平台来检测,软件⼀般采⽤sql注⼊检测⼯具jsky,MDCSOFT SCAN等。采⽤MDCSOFT-IPS可以有效的防御SQL注⼊,XSS攻击等。
⼆、跨站脚本攻击(XSS,Cross-site scripting)
跨站脚本攻击(XSS)是最常见和基本的攻击WEB⽹站的⽅法。攻击者在⽹页上发布包含攻击性代码的数据。当浏览者看到此⽹页时,特定的脚本就会以浏览者⽤户的⾝份和权限来执⾏。通过XSS可以⽐较容易地修改⽤户数据、窃取⽤户信息,以及造成其它类型的攻击,例如CSRF攻击。
常见解决办法:确保输出到HTML页⾯的数据以HTML的⽅式被转义
出错的页⾯的漏洞也可能造成XSS攻击,⽐如页⾯/gift/giftList.htm?page=2不到。出错页⾯直接把该url原样输出,如果攻击者在url 后⾯加上攻击代码发给受害者,就有可能出现XSS攻击
三、 跨站请求伪造攻击(CSRF)
跨站请求伪造(CSRF,Cross-site request forgery)是另⼀种常见的攻击。攻击者通过各种⽅法伪造⼀个请求,模仿⽤户提交表单的⾏为,从⽽达到修改⽤户的数据,或者执⾏特定任务的⽬的。为了假冒⽤户的⾝份,CSRF攻击常常和XSS攻击配合起来做,但也可以通过其它⼿段,例如诱使⽤户点击⼀个包含攻击的链接。
解决的思路有:
1.采⽤POST请求,增加攻击的难度.⽤户点击⼀个链接就可以发起GET类型的请求。⽽POST请求相对⽐较难,攻击者往往需要借助javascript才能实现
2.对请求进⾏认证,确保该请求确实是⽤户本⼈填写表单并提交的,⽽不是第三者伪造的.具体可以在会话中增加token,确保看到信息和提交信息的是同⼀个⼈
四、Http Heads攻击
凡是⽤浏览器查看任何WEB⽹站,⽆论你的WEB⽹站采⽤何种技术和框架,都⽤到了HTTP协议。HTTP协议在Response header和content之间,有⼀个空⾏,即两组CRLF(0x0D 0A)字符。这个空⾏标志着headers的结束和content的开始。“聪明”的攻击者可以利⽤这⼀点。只要攻击者有办法将任意字符“注⼊”到 headers中,这种攻击就可以发⽣。
当登录成功以后,需要重定向回page参数所指定的页⾯。下⾯是重定向发⽣时的response headers。
HTTP/1.1 302 Moved Temporarily
Date: Tue, 17 Aug 2010 20:00:29GMT
假如把URL修改⼀下,变成这个样⼦:
那么重定向发⽣时的reponse会变成下⾯的样⼦:
HTTP/1.1 302 Moved Temporarily
Date: Tue, 17 Aug 2010 20:00:29GMT
这个页⾯可能会意外地执⾏隐藏在URL中的javascript。类似的情况不仅发⽣在重定向(Location header)上,也有可能发⽣在其它headers中,如Set-Cookie header。这种攻击如果成功的话,可以做很多事,例如:执⾏脚本、设置额外的cookie(Set-Cookie:
evil=value)等。
避免这种攻击的⽅法,就是过滤所有的response headers,除去header中出现的⾮法字符,尤其是CR
LF。
服务器⼀般会限制request headers的⼤⼩。例如Apache server默认限制request header为8K。如果超过8K,Aapche Server将会返回400 Bad Request响应:
对于⼤多数情况,8K是⾜够⼤的。假设应⽤程序把⽤户输⼊的某内容保存在cookie中,就有可能超过8K.攻击者把超过8k的header链接发给受害 者,就会被服务器拒绝访问.解决办法就是检查cookie的⼤⼩,限制新cookie的总⼤写,减少因header过⼤⽽产⽣的拒绝访问攻击。
五、Cookie攻击
通过JavaScript⾮常容易访问到当前⽹站的cookie。你可以打开任何⽹站,然后在浏览器地址栏中输⼊:
javascript:kie),⽴刻就可以看到当前站点的cookie(如果有的话)。攻击者可以利⽤这个特性来取得你的关键信息。例如,和XSS攻击相配合,攻击者在你的浏览器上执⾏特定的JavaScript脚本,取得你的cookie。假设这个⽹站仅依赖cookie来验证⽤户⾝份,那么攻击者就可以假冒你的⾝份来做⼀些事情。
现在多数浏览器都⽀持在cookie上打上HttpOnly的标记,凡有这个标志的cookie就⽆法通过JavaScript
来取得,如果能在关键cookie上打上这个标记,就会⼤⼤增强cookie的安全性
六、重定向攻击
⼀种常⽤的攻击⼿段是“钓鱼”。钓鱼攻击者,通常会发送给受害者⼀个合法链接,当链接被点击时,⽤户被导向⼀个似是⽽⾮的⾮法⽹站,从⽽达到骗取⽤户信任、窃取⽤户资料的⽬的。为防⽌这种⾏为,我们必须对所有的重定向操作进⾏审核,以避免重定向到⼀个危险的地⽅。常见解决⽅案是⽩名单,将合法的要重定向的url加到⽩名单中,⾮⽩名单上的域名重定向时拒之。第⼆种解决⽅案是重定向token,在合法的url上加上token,重定向时进⾏验证。
七、上传⽂件攻击
1.⽂件名攻击,上传的⽂件采⽤上传之前的⽂件名,可能造成:客户端和服务端字符码不兼容,导致⽂件名乱码问题;⽂件名包含脚本,从⽽造成攻击。
2.⽂件后缀攻击,上传的⽂件的后缀可能是exe可执⾏程序、js脚本等⽂件,这些程序可能被执⾏于受害者的客户端,甚⾄可能执⾏于服务器上。因此我们必须过滤⽂件名后缀,排除那些不被许可的⽂件名后缀。
3.⽂件内容攻击,IE6有⼀个很严重的问题,它不信任服务器所发送的content type,⽽是⾃动根据⽂
件内容来识别⽂件的类型,并根据所识别的类型来显⽰或执⾏⽂件。如果上传⼀个gif⽂件,在⽂件末尾放⼀段js攻击脚本,就有可能被执⾏。这种攻击,它的⽂件名和content type看起来都是合法的gif图⽚,然⽽其内容却包含脚本,这样的攻击⽆法⽤⽂件名过滤来排除,⽽是必须扫描其⽂件内容,才能识别。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。