 |
台湾 行销企划部
电话:(02) 2704-1758
传真:(02) 2704-0372 |
| |
USA Service Dept.
ADD:5138 Parkfield Ave.
San Jose, CA95129
Tel:408-2034565 |
|
|
|
| 标题 |
何谓XSS(Cross-site scripting) |
| 主题分类 |
網路資訊 |
| 原文章出处 |
维基百科 |
跨网站指令码(Cross-site scripting,通常简称为XSS)是一种网站应用程序的安全漏洞攻击,允许恶意使用者将程序代码注入到网页上,其它使用者在观看网页时就会受到影响。这类攻击通常包含了HTML以及使用者端脚本语言。
当网景(Netscape)最初推出JavaScript语言时,他们也察觉到准许网页服务器传送可执行的程序代码给一个浏览器的安全风险(即使仅是在一个浏览器的sandbox里)。它所造成的一个关键的问题在于使用者同时开启多个浏览器窗口时,在某些例子里,网页里的片断程序代码被允许从另一个网页或对象取出数据,而因为恶意的网站可以用这个方法来尝试窃取机密信息,所以在某些情形,这应是完全被禁止的。为了解决这个问题,浏览器采用了与最初相同的决策──允许来自相同网域名称系统和使用相同协议的对象与网页之间的任何互动。这样一来,恶意的网站便无法藉由JavaScript在另一个浏览器窃取机密数据。此后,为了保护使用者免受恶意网站的危害,其它的浏览器与伺服端指令语言采用了类似的存取控制决策。一般而言,跨网站指令码的漏洞常见于网页允许攻击者通过这些机制的弱点。由于发现了巧妙的注入恶意的指令码到由其它网域服务的网页方法,攻击者可得到了更高的特权,窃取机密的网页内容、会谈的cookie、以及许多其它的对象。
测试方法
通常有一些方式可以测试网站是否有正确处理特殊字符: ●><script>alert(document.cookie)</script> ●='><script>alert(document.cookie)</script> ●<script>alert(document.cookie)</script> ●<script>alert(vulnerable)</script> ●%3Cscript%3Ealert('XSS')%3C/script%3E ●<script>alert('XSS')</script> ●<img src="javascript:alert('XSS')"> 使用者可做一个网页,试着用JavaScript把document.cookie当成参数丢过去,然后再把它记录下来,但XSS攻击方法不外乎只是这个。
避免的方法
程序设计方面 避免XSS的方法主要是将使用者所提供的内容进行过滤,许多语言都有提供对HTML的过滤:
PHP的htmlentities()或是htmlspecialchars()。 Python的cgi.escape()。 ASP的Server.HTMLEncode()。
使用者方面 包括Internet Explorer、Mozilla Firefox在内的常用浏览器皆有关闭JavaScript的功能,但关闭未必是最好的方法,许多网站都会使用JavaScript语言。
|
| 文章整理: |
|
| 关键词: |
跨网站指令码,Cross-site scripting,XSS,JavaScript |
|
|
|