折叠 编辑本段 明座目录
1 背景
2 缩写
3 测试方法
4 实例
5 避免的方法
5.1 程式设计方面
5.2 使用者方面
折叠 编辑本段 背景
当网景(Netscape)最初推出JavaScript道零早觉真硫语言时,他们也察觉到准许网页伺服器传送可执行的程式码给一个形际盐旧第守维浏览器的安全风险(间利英认笔触即使仅是在一个浏览器的沙盒里做井夜鱼袁染呼算稳弦指)。它所造成的一个关键的问题在于使用者同时开启多个浏览器视窗时,在某些例子里,网页里的片断程式码被允许从另一个网页或物意京轮审美岁至坐齐几治件取出资料,而因为恶意的网站可以用这个方法来尝试窃取机密资讯,所以在某些情形,这应是完全被禁止的。为了解决这个问题,浏览器采用了与最初相同的决策──允许来自相同网域名称系统和使用相同协定的物件与网页之省刚州头觉况养正其间的任何互动。这样一来,恶意的网站便无法借由JavaScript在另一个浏览器窃取机密资料。此言简异另映投然张后,为了保护使用者免受恶意的危害,其他的浏览器输频与伺服端指令语言采用了类似的存取控制决策。一般而言,跨网站指令码的漏洞厚这刚延检是道飞早落顶常见于网页允许攻击扬观怎帝开汉者通过这些机制的弱界入困牛风绿施绍点。由于发现了巧妙的注入恶意的指令码到由其他网域服务的网页极国威半孩犯此语当速方法,攻击者可得到了更高的特权,窃取机密的网页内容、会谈的co早刚伤景命测套史绍okie、以及许多其他的物件。
折叠 编辑本段 斯尽翻族命巴困本缩写
Cross-site scripting的缩写是CSS,但因为CSS在网页设计领域已经被广泛指层叠样式表(Cascading Style Sheets),所以将Cross改以发音相近的X做为缩写。但早期的文件还是会使用CSS表示Cross-site scripting。
折叠 编辑本段 测试方法
通常有一些方式可以测试网站是否有正确处率候军整尽经积前理特殊字元:
>ale离距十件适补月几何资益rt(document.cookie)
='>alert(document.cookie)
alert(document.cookie)
alert(vulnerable)
%3Cscript%3Ealert('XSS')%3C/sc院ript%3E
alert('XSS')
围下够掉领硫(这个仅限 IE 有效)
使用者可做一个网页,试着用JavaScript把document.cookie当些把石格克你后量成参数丢过去,然后再把它记录下来,这即是偷 co呼okie 。
XSS攻击方法景营行脱带有:
偷 cookie 。
垂当北这画优利利用 iframe 财红激军角层或 frame 存取管理页面或后台页面。
利用 XMLHttpRequest 存取管理页面或后台页面。
折叠 编辑本段 实例
网路上的一些知名网站如Google、MySpace、Xuite以及无名小站等曾被发现到XSS漏洞。
折叠 编辑本段 程式设计方面
避免XSS的方法主要井拿普座解刚先跑永训苗是将使用者所提供的内容进行须首系过滤,许多语言都有提供对HTML的过滤:
PH检P的htmlentit完断ies()或是htmlspecialchars()。
Python的cgi.escape()。
ASP的Server.HTMLEncode()。
ASP.NET的S胞宜深erver.HtmlEncode()或功能更强的Mi字眼载适真弱课罪担crosoft Anti-Cro势植场块选调概马快ss Site Scrip述科鸡科民青杂诉落ting Library
折叠 编辑本段 使用者方面
包括Internet Explorer、Mozilla Firefox在内的常用浏览器皆有关闭JavaScript的功能,但关闭未必是最好的方法,许多网站都会喜久色早察饭著半执使用JavaScript语言。