跨站脚本攻击,即XSS(Cross-Site Scripting)攻击.
漏洞的主要原理就是把用户的输入不加处理的输出到了页面
攻击有几种情况:1.跨站脚本存到了服务器,这样会影响所有访问者
2.跨站脚本通过网页展示给特定用户以Twitter最新受影响的漏洞为例:(实际上twitter上的蠕虫比这复杂)
Twitter允许用户输入网址,然后展示成链接的格式,href里的内容就是用户输入
<a href='http://www.xxx.com' style='xxxx' />
某用户输入的链接地址为:http://www.xxx.com'onmouseover='alter("1")'
由于twitter没有处理用户输入信息,直接展示了出来,则展示出来的链接地址就变成了
<a href='http://www.xxx.com'onmouseover='alter("1")' style='xxxx' />
当然,这个JS也可以取到用户的用户名和cookie,然后发送给另外的网站防范原则:
1.<script>…不要把用户数据输出到这里 …</script>
2.<!-- … 不要把用户数据输出到这里 … - ->
3.<div … 不要把用户数据输出到这里 …=test />
4.<… 不要把用户数据输出到这里 … href=“/test” />
5.<div attr=…不要把用户数据输出到这里 …>content</div>
6.<div attr=‘..不要把用户数据输出到这里 ..’>content</div>
7.<div attr=“..不要把用户数据输出到这里..”>content</div>
8.<script>alert(‘..输出到这里的用户数据必须编码..’)</script>
9.<script>x=‘..输出到这里的用户数据必须编码..’</script>
10.<div onmouseover=“x=‘..输出到这里的用户数据必须编码..’ “</div>
11.<a href=“http://site.com?test=...输出到这里的用户数据必须编码..”>link</a>
12.在machine.config或者web.config里打开asp.net的request validation选项<pages buffer=“true” validateRequest=“true”/>
13.可使用的开发包:AntiXSS以上文字纯属抛砖引玉,对XSS的介绍也很浅显,大家多提意见