一个网站建立以后,如果不注意安全方面的问题,很容易被人攻击,下面就讨论一下几种漏洞情况和防止攻击的办法.
一.跨站脚本攻击(XSS)
跨站脚本攻击(XSS,Cross-site scripting)是最常见和基本的攻击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中,这种攻击就可以发生
以登陆为例:有这样一个url:
http://localhost/login?page=http%3A%2F%2Flocalhost%2Findex
当登录成功以后,需要重定向回page参数所指定的页面。下面是重定向发生时的response headers.
HTTP/1.1 302 Moved Temporarily
Date: Tue, 17 Aug 2010 20:00:29 GMT
Server: Apache mod_fcgid/2.3.5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635
Location: http://localhost/index
假如把URL修改一下,变成这个样子:
http://localhost/login?page=http%3A%2F%2Flocalhost%2Fcheckout%0D%0A%0D%0A%3Cscript%3Ealert%28%27hello%27%29%3C%2Fscript%3E
那么重定向发生时的reponse会变成下面的样子:
HTTP/1.1 302 Moved Temporarily
Date: Tue, 17 Aug 2010 20:00:29 GMT
Server: Apache mod_fcgid/2.3.5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635
Location: http://localhost/checkout<CRLF>
<CRLF>
<script>alert('hello')</script>
这个页面可能会意外地执行隐藏在URL中的javascript。类似的情况不仅发生在重定向(Location header)上,也有可能发生在其它headers中,如Set-Cookie header。这种攻击如果成功的话,可以做很多事,例如:执行脚本、设置额外的cookie(<CRLF>Set-Cookie: evil=value)等。
避免这种攻击的方法,就是过滤所有的response headers,除去header中出现的非法字符,尤其是CRLF。
服务器一般会限制request headers的大小。例如Apache server默认限制request header为8K。如果超过8K,Aapche Server将会返回400 Bad Request响应:
对于大多数情况,8K是足够大的。假设应用程序把用户输入的某内容保存在cookie中,就有可能超过8K.攻击者把超过8k的header链接发给受害者,就会被服务器拒绝访问.解决办法就是检查cookie的大小,限制新cookie的总大写,减少因header过大而产生的拒绝访问攻击
四.Cookie攻击
通过Java Script非常容易访问到当前网站的cookie。你可以打开任何网站,然后在浏览器地址栏中输入:javascript:alert(doucment.cookie),立刻就可以看到当前站点的cookie(如果有的话)。攻击者可以利用这个特性来取得你的关键信息。例如,和XSS攻击相配合,攻击者在你的浏览器上执行特定的Java Script脚本,取得你的cookie。假设这个网站仅依赖cookie来验证用户身份,那么攻击者就可以假冒你的身份来做一些事情。
现在多数浏览器都支持在cookie上打上HttpOnly的标记,凡有这个标志的cookie就无法通过Java Script来取得,如果能在关键cookie上打上这个标记,就会大大增强cookie的安全性
五.重定向攻击
一种常用的攻击手段是“钓鱼”。钓鱼攻击者,通常会发送给受害者一个合法链接,当链接被点击时,用户被导向一个似是而非的非法网站,从而达到骗取用户信任、窃取用户资料的目的。为防止这种行为,我们必须对所有的重定向操作进行审核,以避免重定向到一个危险的地方.常见解决方案是白名单,将合法的要重定向的url加到白名单中,非白名单上的域名重定向时拒之,第二种解决方案是重定向token,在合法的url上加上token,重定向时进行验证.
六.上传文件攻击
1.文件名攻击,上传的文件采用上传之前的文件名,可能造成:客户端和服务端字符码不兼容,导致文件名乱码问题;文件名包含脚本,从而造成攻击.
2.文件后缀攻击.上传的文件的后缀可能是exe可执行程序,js脚本等文件,这些程序可能被执行于受害者的客户端,甚至可能执行于服务器上.因此我们必须过滤文件名后缀,排除那些不被许可的文件名后缀.
3.文件内容攻击.IE6有一个很严重的问题 , 它不信任服务器所发送的content type,而是自动根据文件内容来识别文件的类型,并根据所识别的类型来显示或执行文件.如果上传一个gif文件,在文件末尾放一段js攻击脚本,就有可能被执行.这种攻击,它的文件名和content type看起来都是合法的gif图片,然而其内容却包含脚本,这样的攻击无法用文件名过滤来排除,而是必须扫描其文件内容,才能识别。
相关推荐
【WEB前端常见受攻击方式及解决办法】 WEB前端的安全问题不容忽视,因为它直接影响到用户的个人信息安全和网站的正常运行。本文主要关注四种常见的攻击方式及其防范措施:SQL注入、跨站脚本攻击(XSS)、跨站请求...
### Web程序攻击方式及其解决方法 #### 一、跨站脚本攻击(XSS) **攻击原理:** 跨站脚本攻击(Cross Site Scripting,简称XSS)是一种常见的Web安全漏洞,它允许攻击者在受害者的浏览器中执行恶意脚本。这通常...
XSS(Cross-site scripting)攻击是一种常见的网络安全威胁,它利用了网站对用户输入的不当处理,使得攻击者能够注入恶意脚本,进而控制或者窃取用户的浏览器数据。防止XSS攻击是保护Web应用安全的重要一环,对于...
### 网站常见漏洞及解决办法 #### 远端WWW服务支持TRACE请求 **问题描述**:在HTTP协议中,TRACE方法允许客户端从服务器获取请求消息的副本,主要用于调试目的。然而,如果一个Web服务器支持TRACE请求且没有正确...
本资料由IBM Rational Appscan提供,涵盖了常见的Web安全漏洞及其解决方案,旨在帮助开发者和安全专家识别并防范这些威胁。以下是其中的一些关键知识点: 1. **SQL注入**:攻击者通过在输入字段中插入恶意SQL代码,...
本篇文章主要探讨了两个关键知识点:一是不能盲目信任用户输入,二是五种常见的ASP.NET安全缺陷及其解决办法。 首先,我们了解为什么不能盲目相信用户输入。Web应用程序常常依赖用户提供的数据来执行各种操作,如...
本文将深入探讨常见的Web开发安全漏洞,分析其原因,并提出相应的解决策略。 一、SQL注入 SQL注入是通过输入恶意SQL语句来获取未经授权的数据或者对数据库进行操作的安全漏洞。攻击者可以通过在表单字段中输入特殊...
局域网中受ARP欺骗攻击后的解决方法可用 局域网中ARP欺骗攻击是一种常见的网络攻击方式,攻击者可以通过ARP欺骗木马程序来控制局域网内的所有主机和安全网关,导致网络通讯拥塞、用户上网速度变慢等问题。在这篇...
**CSRF(Cross-Site Request Forgery,跨站请求伪造)**是一种网络攻击手段,它利用用户在浏览器中的认证状态,通过伪造用户请求的方式对目标网站进行非法操作。这种攻击方式在用户不知情的情况下发生,具有较强的...
本文将深入探讨*** Web应用程序中常见的网络安全漏洞,并提供相应的解决方案。 首先,跨站点脚本攻击(XSS)是Web应用中最普遍和最危险的漏洞之一。XSS攻击者通常会将恶意的JavaScript代码注入到网站页面中,当其他...
【网页攻击】:常见的网页攻击包括网站挂马,攻击者通过获取后台管理员权限在网站植入木马,影响网站信誉并传播病毒。SQL注入则是将恶意SQL命令插入用户输入,欺骗服务器执行,危害数据安全。跨站脚本攻击(XSS)则能...
通过对攻击测试结果的分析,提出了 Web 网站安全的一些防护措施,包括 Web 服务器端的安全防护措施、编写网站代码时可以使用的安全手段、对抗常见网站攻击的方法等。 本文还讨论了 Web2.0 时代的 Web 网站安全问题...
"四种在局域网中最常见的蠕虫病毒攻击快速诊断和解决方法" 四种在局域网中最常见的蠕虫病毒攻击快速诊断和解决方法,即冲击波/震荡波病毒、SQL 蠕虫、伪造源地址 DDoS 攻击、ARP 欺骗。这些病毒攻击在宽带接入的...
SQL注入漏洞 跨站脚本攻击漏洞 IIS短文件/文件夹漏洞 系统敏感信息泄露
### .Net中常见问题及解决方法归类 #### 一、概述 .NET框架自问世以来,在Web开发领域占据了举足轻重的地位。特别是在ASP.NET框架的推动下,它成为了构建高效、安全的企业级应用程序的理想选择之一。然而,在实际...
总结,解决Web跨域问题需要根据项目的具体需求和目标浏览器选择合适的方法,例如CORS是最推荐的方式,但需要在服务器端进行相应的配置。对于旧版浏览器或特定场景,JSONP和代理服务器也是有效的解决方案。同时,跨域...
"web常见漏洞思维导图.rar"这个压缩包文件提供了对这些漏洞的系统性概述,涵盖了漏洞的原理和利用方式,这对于渗透测试和网络安全防护具有极大的价值。下面将详细阐述其中涉及的知识点。 首先,Web常见漏洞主要包括...
论文通过对SQL注入攻击的基本概念和原理、基于Web应用的SQL注入攻击的影响和危害、基于动态查询匹配的SQL注入攻击检测方法、基于Web应用的SQL注入攻击入侵检测系统的设计和实现等方面的研究,旨在解决当前Web应用...