`
peterwanghao
  • 浏览: 128356 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

如何防御跨站点脚本攻击

 
阅读更多

<!-- [if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning/> <w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas/> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:SpaceForUL/> <w:BalanceSingleByteDoubleByteWidth/> <w:DoNotLeaveBackslashAlone/> <w:ULTrailSpace/> <w:DoNotExpandShiftReturn/> <w:AdjustLineHeightInTable/> <w:BreakWrappedTables/> <w:SnapToGridInCell/> <w:WrapTextWithPunct/> <w:UseAsianBreakRules/> <w:DontGrowAutofit/> <w:UseFELayout/> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!-- [if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]-->

<!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} @font-face {font-family:"/@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:宋体; mso-font-kerning:1.0pt;} /* Page Definitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:36.0pt; mso-footer-margin:36.0pt; mso-paper-source:0;} div.Section1 {page:Section1;} /* List Definitions */ @list l0 {mso-list-id:313414472; mso-list-type:hybrid; mso-list-template-ids:-1433111036 -1423541248 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} @list l0:level1 {mso-level-text:%1、; mso-level-tab-stop:57.75pt; mso-level-number-position:left; margin-left:57.75pt; text-indent:-36.75pt;} ol {margin-bottom:0cm;} ul {margin-bottom:0cm;} -->

<!-- [if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} </style> <![endif]-->

跨站点脚本( XSS )攻击目前非常普遍,但大多数的网站开发者都不知道什么是 XSS 和如何去防范,网站开发者不去关心它一个主要原因是因为这种攻击不会去破坏网站的数据。这种攻击的特点是通过运行在网站上的一些非法脚本来窃取用户的信息,而用户无法察觉是因为他们信任这个网站。

什么是 XSS ?它是如何应用的?

XSS 指的是恶意攻击者往 Web 页面里插入恶意脚本代码,当用户浏览该页之时,嵌入在 Web 里面的脚本代码会被执行,从而达到恶意攻击用户的特殊目的。

XSS 有两种类型,第一种被称为“存储”攻击。将恶意代码通过一个文本输入框保存到应用里。这个输入框可能是一个评论框,搜索框或是论坛的信息框等等。对于目前大多数的提供用户评论和反馈功能的 Web2.0 应用来说这是一个相当大的隐患。如果允许用户插入和存贮数据到你的应用中,那么很容易受到 XSS 攻击。

另一种被称为“反射”攻击。 reflected XSS 攻击利用了 Web 应用程序安全性低的弱点,该应用程序在浏览器中显示输入参数而不对其中是否存在非法内容进行检查。通常,攻击者会诱使用户单击 URL ,而这个 URL 已嵌入了恶意脚本。而网站则“反射”这个脚本给用户并且在用户的浏览器里执行此脚本。

XSS 攻击的效果是什么样的?谁是受害者?

一般来讲,用户是最大的受害者而不一定是网站,而这也是 XSS 攻击隐蔽性的一个特点。早期的 XSS 攻击都集中在盗取用户 cookie ,而现在出现了一些更具破坏性的攻击方式。这些攻击可以降低网站的速度,导致用户执行一些不需要的行为(例如 MySpace Smay 蠕虫),甚至在一个正常网站里植入钓鱼网站。

假设你要去一个你喜欢的网站去购买东西,于是你访问了这个网站,并且所有的安全检查都是通过的。 SSL 证书是正确的,域是正确的。你会认为你很安全,但并非如此。当你填写了你的用户 ID 和密码后,你可能会执行一段恶意的脚本将你的表单中的数据发送到别的地方。而你却根本不知道这回事。

这就好像小偷在一台 ATM 前安装了一个伪装的输入端,这个伪装的输入端读取你的卡数据并传给真正的 ATM 机。而你如愿以偿得到了钱。但是小偷却得到了你的账号和密码。 XSS 就可以做到这些,但是其更加透明和隐蔽,因此这类攻击非常普遍。

如何察觉 XSS 攻击?

察觉 XSS 攻击在技术上并不难,但是工作量却是巨大的。基本上你得检查网站里所有的表单和输入域,任何一个输入到应用里的数据都需要检查。使用手工方式显然是一项艰巨的工作,所以你最好使用自动化扫描技术来完成。

如何防御 XSS 攻击?

可以从三个方面考虑如何防御 XSS 攻击:

<!-- [if !supportLists]-->1、 <!-- [endif]-->Web 应用防火墙:使用 Web 应用防火墙可以阻止你的网站去调用外部网站的脚本。所以当你使用了 Web 应用防火墙可以很大程度上地消除这个问题。当然必须确保你所有的处理都需要通过防火墙,以便确保在应用中没有别的线路可以绕开防守。

<!-- [if !supportLists]-->2、 <!-- [endif]-->代码框架:很多的应用框架都可以降低 XSS 攻击风险,这些框架都具有内置的验证程序以确保表单和输入域不能接受外部的脚本。微软就这个问题在 ASP.net 中提供了许多先进的验证检查的内建命令。 J2EE Rails 也提供了很多建议和文件,以防范跨站脚本攻击。

<!-- [if !supportLists]-->3、 <!-- [endif]-->培训开发人员:虽然说很多框架都增加了如何预防 XSS 攻击,但最终你还是需要让开发人员了解攻击的原理并且在编码时在思想上有意识地去规避这些风险。虽然有可能开发人员对安全方面并不是特别的关心,但是通过不断的宣传和持续的应用测试,可以使开发人员有更深刻的理解。

XSS 攻击对互联网应用具有很大的危害性,但是它是可以控制的。使用一些预防性的扫描和多采取积极主动的预防措施,大多数的 XXS 攻击风险都是可以消除的。

分享到:
评论

相关推荐

    跨站点脚本编制问题解决

    跨站点脚本(Cross-Site Scripting,简称XSS)是一种常见的网络安全问题,它发生在攻击者能够在用户浏览器中注入恶意脚本时。这些脚本可以伪装成受信任的网站,从而窃取用户的敏感信息,如登录凭据或执行其他恶意...

    XSS跨站脚本攻击剖析与防御.docx

    ### XSS跨站脚本攻击剖析与防御 #### 一、XSS攻击概述 跨站脚本(Cross Site Scripting,简称XSS)攻击是一种常见的Web应用程序安全漏洞,它允许攻击者将恶意脚本注入到看似可信的网站上。当用户浏览这些被注入...

    XSS 跨站脚本攻击及防范

    XSS(Cross Site Scripting)跨站脚本攻击是一种网络安全漏洞,主要针对Web应用程序,让攻击者能够在受害者的浏览器上执行恶意脚本。攻击者通过在网页中插入有害的HTML代码,当用户浏览该页面时,这些代码会被执行,...

    解决BEA WebLogic Platform 8.14跨站点脚本编制漏洞问题

    "解决BEA WebLogic Platform 8.14跨站点脚本编制漏洞问题" 这个标题表明了我们关注的核心是BEA WebLogic Platform 8.14版本的安全问题,特别是针对跨站脚本(XSS)攻击的解决方案。BEA WebLogic是一个由Oracle公司...

    asp防范跨站点脚本攻击的的方法

    跨站点脚本攻击(Cross-Site Scripting,简称XSS)是一种常见的网络安全漏洞,它允许攻击者在受害者的浏览器上执行恶意脚本。ASP(Active Server Pages)是一种微软开发的服务器端脚本语言,用于创建动态网页。由于...

    有关ASP.NET中跨站点脚本(XSS)预防的绝对入门教程

    跨站点脚本(Cross-Site Scripting,简称XSS)是一种常见的网络安全漏洞,主要发生在Web应用程序中。这种攻击方式允许攻击者将恶意脚本注入到其他用户正在查看的网页上,从而盗取用户数据、执行非授权操作或者破坏...

    SQL注入和跨站点脚本

    SQL注入和跨站点脚本(XSS)是两种常见的网络安全威胁,主要针对基于Web的应用程序。这篇文章将深入探讨这两种攻击方式,以及如何在C#环境中防止它们。 **SQL注入** SQL注入是一种攻击手段,攻击者通过输入恶意的...

    1、 web脚本攻击 2、 IIS安全设置

    此外,实验还涵盖了如何通过特定的页面设计和JavaScript代码实现跨站脚本攻击,以及如何利用跨站脚本盗取cookies。例如,通过使用`window.frames[0]`和`location`属性来控制子页面的行为,从而注入并执行恶意脚本,...

    web站点攻击防御

    高严重性问题中,跨站点脚本编制(XSS)是最突出的,共发现19个漏洞。XSS攻击允许攻击者在用户浏览器中注入恶意脚本,从而执行攻击者控制的操作,比如盗取会话凭证、操纵用户界面或者传播恶意软件。XSS漏洞的发生...

    基于PHP的在线跨站脚本检测工具.pdf

    跨站脚本攻击(Cross Site Scripting,简称XSS)是网络安全领域中的常见威胁,它利用网站应用程序的安全漏洞,向用户注入恶意脚本,从而获取敏感信息或破坏用户体验。随着网络攻击手段的不断升级,XSS攻击变得越来越...

    一种自动化的跨站脚本漏洞发现模型.pdf

    跨站脚本攻击(Cross-Site Scripting,简称XSS)是一种常见的网络安全漏洞,其威胁性对Web应用程序的安全造成了严重的影响。XSS攻击允许攻击者在用户浏览器中执行恶意脚本,这些脚本可以窃取用户的敏感信息、劫持...

    OWASP-security-scanner:自动化的安全扫描程序,用于使用python selenium-python自动化模块和漂亮的soup web scrapper模块在python 3.9.1中进行的sql注入和跨站点脚本编写

    Web应用程序是攻击的主要基础,例如跨站点脚本,cookie会话盗窃,浏览器攻击,Web电子邮件和网站中的自传播蠕虫。 这些类型的攻击称为“注入攻击”,即通过使用恶意代码进行攻击。 在过去十年的大部分时间里,注入...

    手工检测注入点

    常见的注入攻击类型包括SQL注入、命令注入、XSS(跨站脚本)等。注入点就是这些恶意数据能够进入程序的关键位置,例如HTTP请求参数、数据库查询语句等。 手工检测注入点的过程主要分为以下几个步骤: 1. **理解...

    Secure-Login-PHP:通过跨站点脚本,SQL INJECTION和会话劫持进行安全的登录身份验证和注释防护

    跨站点脚本攻击允许攻击者在用户的浏览器中执行恶意脚本,可能导致数据泄露或用户权限滥用。为防止XSS,项目中应使用htmlspecialchars()函数对所有用户输入进行转义,或者使用HTMLPurifier库来清理不安全的HTML。...

    XSS脚本注入拦截框架 antisamy

    XSS(跨站脚本)攻击是Web应用安全领域中一个常见的威胁,它通过注入恶意脚本到看似可信的网站上,进而对用户进行攻击。为有效防御XSS攻击,OWASP(开放Web应用安全项目)开发了名为AntiSamy的脚本注入拦截框架。...

    webProject:具有XSS,SQL注入和Croos站点请求伪造的跨站点脚本

    **XSS(跨站脚本)**允许攻击者在用户的浏览器中执行恶意脚本。这种攻击通常发生在网站未能充分验证用户提交的数据时。有三种主要类型的XSS:存储型XSS,其中恶意脚本被存储在服务器上并传递给其他用户;反射型XSS,...

    SecureJS:用于安全测试,XSS,CRSF和HTML5跨站点脚本的Javascript库。 这是尝试解决一些开放安全性问题,以及使用javascript将许多公司过渡到Web的尝试。

    SecureJS是一款专为JavaScript开发的安全测试工具,主要针对XSS(跨站脚本攻击)、CSRF(跨站请求伪造)以及HTML5中的跨站点脚本漏洞进行防护。它旨在帮助开发者在构建Web应用的过程中,有效地识别并预防这些常见的...

Global site tag (gtag.js) - Google Analytics