<!-- [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:595.3pt 841.9pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;
mso-header-margin:42.55pt;
mso-footer-margin:49.6pt;
mso-paper-source:0;
layout-grid:15.6pt;}
div.Section1
{page:Section1;}
-->
<!-- [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-fareast-font-family:"Times New Roman";
mso-ansi-language:#0400;
mso-fareast-language:#0400;
mso-bidi-language:#0400;}
</style>
<![endif]-->
跨站点脚本攻击的原理很简单。应用程序会从一些不可信的来源获取数据(比如
HTTP
请求),并且对这些数据没有审查或者编码就整合到
web
页面中。这样攻击者就会利用这些漏洞向应用发送一些小的脚本片断,这些脚本可以在
HTML
网页里插入一些危险代码并且运行在受害者的浏览器里。最终,它允许攻击者在受害者的浏览器中运行一些脚本。
JavaScript
是一种功能强大的编程语言,使用
JavaScript
你可以写出很多复杂的应用程序,比如说窃取数据,窃取
Session Cookies
,窃取账号,窃取所有下载到浏览器中的资料。
跨站点脚本攻击的危害性是相当普遍的,大概
60%
至
70%
的网站都会有这样的问题。有些是很隐蔽的,有些是很容易发现的。但是它们有时可能不是最严重的问题。我的意思是,它们肯定很重要,但在影响力方面它们可能不是最严重的。比如访问控制问题、认证问题等也许在影响力方面比它更高,但无需置疑的,跨站点脚本攻击是应用安全中最普遍的问题。
当你在一个
web
应用上进行认证时,输入你的用户名和密码。应用程序会对你进行身份认证,认证通过后会为你颁发一个
Session Cookie
——它就象一个临时的邮戳,你可以使用它进入系统。而这时假设攻击者能够发动跨站点脚本攻击并且实际控制了你的浏览器,攻击者就能窃取到这个临时的邮戳,他就变成了你,他可以做你能做的任何事情。而另一方面更为严重的情况是他们可以注入所谓的
“
跨站脚本代理
”
到您的浏览器,代替你去访问应用。攻击者实际上将你的浏览器作为代理去访问互联网。通过你的浏览器发送请求去访问那些信任你的站点。他们代替你作为可信的访问者去访问那些站点而你可能却一无所知。
跨站点脚本攻击的根本原因是在数据输入到页面之前没有进行验证和做适当的输出编码。在实际应用中在任何时候从
HTTP
请求中得到任何的东西,像一个参数,或者一个标题或者一个
Cookie
,你都需要自动地去验证它。可以把这样的操作定义为白名单验证法。它并不是仅仅验证几个有问题的字符,而是如果你假定这是一个邮政编码的话就去检查是否真的是一个邮政编码。这种方法类似于在这里放一个正则表达式或者是一个事先定义好的正确清单,然后进行比对。同时可以使用一个翻译器做你认为适当的输出编码,对于
HTML
语言来说意味着要使用类似所谓的
“HTML
编码实体
”
,对一些特定的符号进行编码转换。
你应该对一切你不能确定安全的特殊字符进行编码,对于不是数字和字母的字符在进入浏览器之前都需要编码。不要只定义三个或四个黑名单字符,这样做是很危险的,因为攻击者知道如何绕过这些东西。
白名单验证法意味着在你的网站或应用程序中指定能出现哪些内容,而不是去寻找已知的那些攻击方式,看起来更像是用一种战略方式去建立你的应用程序。黑名单方法意味着你需要不断地更新黑名单,不断地增加新的字符去防范新的攻击技术。而使用白名单方法你可以一劳永逸。例如你定义这是一个区号——它只有
6
位数字。那你就永远不用去改变这一定义,它可以更长期有效的做好安全模型验证。
分享到:
相关推荐
Web跨站点脚本(XSS)攻击是一种常见且危险的安全漏洞,主要针对Web应用程序。攻击者利用这种漏洞向网页注入恶意脚本,当用户访问受影响的页面时,这些脚本会在用户的浏览器中执行,从而可能导致敏感信息泄露、账户...
### XSS跨站脚本攻击剖析与防御 #### 一、XSS攻击概述 跨站脚本(Cross Site Scripting,简称XSS)攻击是一种常见的Web应用程序安全漏洞,它允许攻击者将恶意脚本注入到看似可信的网站上。当用户浏览这些被注入...
XSS(Cross Site Scripting)跨站脚本攻击是一种网络安全漏洞,主要针对Web应用程序,让攻击者能够在受害者的浏览器上执行恶意脚本。攻击者通过在网页中插入有害的HTML代码,当用户浏览该页面时,这些代码会被执行,...
跨站点脚本(Cross-Site Scripting,简称XSS)是一种常见的网络安全漏洞,主要发生在Web应用程序中。这种攻击方式允许攻击者将恶意脚本注入到其他用户正在查看的网页上,从而盗取用户数据、执行非授权操作或者破坏...
### 跨站脚本攻击与防范研究 #### 一、引言 随着互联网技术的快速发展,网站成为企业和个人展示信息和服务的重要平台。然而,这也带来了新的网络安全挑战,其中跨站脚本攻击(Cross-Site Scripting,简称XSS)成为...
个问题我的理解是只要让其他网站能执行我的脚本我就有可能危害到,这个网站的用户安全
XSS(Cross Site Scripting),又称CSS(Cross Site Script),即跨站脚本攻击。这种攻击方式是指恶意攻击者通过在Web页面中注入恶意HTML代码,当用户浏览含有恶意代码的页面时,这些恶意代码会在用户的浏览器中被...
XSS(跨站脚本攻击)是网络安全领域中一种常见的攻击手段,主要针对Web应用程序。攻击者通过在网页中注入恶意脚本,当用户访问含有这些脚本的页面时,脚本会在用户的浏览器中执行,进而对用户进行攻击。XSS攻击的...
本文将详细探讨安全测试用例模板,主要关注XSS跨站点脚本攻击和越权漏洞这两个常见但危险的安全问题。 1. XSS(跨站点脚本攻击) XSS攻击是一种常见的网络攻击方式,攻击者通过在网页中注入恶意脚本,使得用户在不...
这可能会进行类似的 XSS(跨站点脚本)或会话固定漏洞。 三、SQL 注入攻击 SQL 注入攻击是指攻击者可以通过输入特殊的 SQL 语句来控制数据库,非法获取网站控制权。设计不良的程序当中,忽略了对输入字符串中夹带...
**Web应用安全:XSS(跨站脚本)测试详解** XSS(Cross-Site Scripting)是一种常见的网络攻击方式,攻击者通过注入恶意脚本,使得用户在浏览网页时执行这些脚本,从而获取敏感信息或进行其他恶意操作。本实验旨在...
告诉浏览器您的应用程序可以从中加载内容,这可以鼓励安全实践并减轻跨站点脚本攻击的危害。 如果默认值不合适, browser-policy还为您提供了配置这些策略的功能。 如果您只想使用Content-Security-Policy或X-Frame...
本文将深入探讨CSRF攻击的工作原理、其对MVC应用程序的危害以及如何通过ASP.NET MVC框架提供的工具和最佳实践来防御此类攻击。 **CSRF攻击原理** CSRF攻击的核心在于利用了用户浏览器的自动携带已登录会话信息(如...
它确保HTML标签是平衡且正确嵌套的标签,中和可用于跨站点脚本(XSS)攻击的代码,限制允许HTML元素,属性或URL协议,整理代码,等等。 这样可以在卫生环境中替代 。 这个仓库是... ...密切追踪的衍生物 链接 ...
Web应用安全领域中,XSS(跨站脚本攻击)是一种常见的网络安全威胁,它利用了网站对用户输入的不适当处理,使得攻击者能够注入恶意脚本,进而控制或窃取用户的数据。在这个实验中,我们将重点探讨XSS通过JavaScript...
XSS(Cross Site Scripting),即跨站脚本攻击,是一种常见的Web安全漏洞。它允许攻击者将恶意脚本注入到看似可信的网站上。这些脚本会在用户的浏览器中执行,可能窃取用户的数据或对用户进行其他形式的攻击。XSS...
跨站点脚本攻击是一种常见的攻击方式,通过在受害者的浏览器中执行恶意脚本来实现。这通常发生在应用程序未能正确过滤用户提交的数据时。 **应对措施**:对用户提交的所有数据进行严格的输入验证,并确保对输出数据...
XSS(Cross Site Scripting)攻击,即跨站脚本攻击,是一种常见的网络安全漏洞,它允许攻击者在目标网站上注入恶意脚本,这些脚本在用户的浏览器中执行,从而获取敏感信息、修改网页内容或者进行其他恶意行为。...
【跨站脚本攻击(XSS)】 跨站脚本攻击是Web应用程序常见的安全威胁之一,它利用网站的安全漏洞,让攻击者能够在用户的浏览器中注入并执行恶意的HTML标签或JavaScript代码。攻击者通常通过创建含有恶意脚本的网页...
接下来,我们讨论CSRF与XSS(Cross-Site Scripting,跨站脚本攻击)的结合。XSS攻击是将恶意脚本注入到被信任的网页中,当用户浏览这些页面时,脚本会被执行,攻击者可以通过这种方式获取用户敏感信息、操纵用户行为...