XSS (cross-site scripting),即跨站脚本攻击,它的本质还是一种“HTML注入”,用户的数据被当成了HTML代码一部分来执行,从而混淆了原本的语义,产生了新的语义。
来看一张某网站遭受XSS攻击后的图片,
[img]http://dl2.iteye.com/upload/attachment/0101/3717/a83f235a-329f-30b0-9f85-3aa747d17f14.jpg[/img]
其实就是攻击者发送了一段html代码,就达到了上述的效果。
这段代码的大致意思是故意加载一张不存在的图片,于是出错后就执行了onerror中的js代码,这段js代码会获取当前登录用户的用户名,并使用同样的内容“虎牙妹妹长得真不错”进行发送,只要其他登录用户一打开此页面,并加载到刚才攻击者发送的内容,就会像蠕虫一样传染开。
解决办法可以使用第三方类库在后台将输入的文本进行过滤,可以在网上找到很多开源的“XSS Filter”的实现:
1、在OWASP ESAPI(Enterprise Sec
来看一张某网站遭受XSS攻击后的图片,
[img]http://dl2.iteye.com/upload/attachment/0101/3717/a83f235a-329f-30b0-9f85-3aa747d17f14.jpg[/img]
其实就是攻击者发送了一段html代码,就达到了上述的效果。
<img height="0" width="0" src="xx" onerror='function fn(){n = $("#userName").html();$("textarea#pub_msg_input.msg-input").val(n + "说:虎牙妹妹长得真不错");$("#msg_send_bt").click();}setInterval(fn, 3000)'>
这段代码的大致意思是故意加载一张不存在的图片,于是出错后就执行了onerror中的js代码,这段js代码会获取当前登录用户的用户名,并使用同样的内容“虎牙妹妹长得真不错”进行发送,只要其他登录用户一打开此页面,并加载到刚才攻击者发送的内容,就会像蠕虫一样传染开。
解决办法可以使用第三方类库在后台将输入的文本进行过滤,可以在网上找到很多开源的“XSS Filter”的实现:
1、在OWASP ESAPI(Enterprise Sec