为什么浏览器会阻止跨站点AJAX?

时间:2011-02-23 14:08:47

标签: ajax cross-domain xss

如果有可能,可以采取哪些攻击的例子?

2 个答案:

答案 0 :(得分:3)

我经营一个网站,在城里赠送最好的免费色情内容。人们蜂拥而至。

当他们浏览和查看颜色和移动图像时,AJAX请求会通过一个域列表来查看您是否登录到其中任何一个域。

如果您已登录,它会向我网站上的页面发送另一个ajax请求,以保存找到的任何数据。这样它就可以窃取私人信息。

或者,它可以将数据发布到这些页面上的表单中,类似于“从您的银行发送1000英镑的金额”。

http://en.wikipedia.org/wiki/Same_origin_policy

Why the cross-domain Ajax is a security concern?

答案 1 :(得分:2)

跨站点脚本(XSS)和跨站点请求伪造(CSRF)

XSS从辅助站点注入第三方代码以改变第一个(通常是SCRIPT标签)的功能。对AJAX相关代码的信任度非常高,您必须相信第三方站点始终会返回相同的信息,并且您的Javascript能够防止格式错误的输入。演示远程Javascript库重写整个页面相当容易。

CSRF对第三方AJAX的攻击很普遍。您登录到某个站点,它会尝试将信息发布到站点,希望您已登录。

你能做的最大,最邪恶的事情是两者的结合。通过一个不安全的文本条目,你在一些Javascript中创建了一个JSS,它创建了KeyListener,它缓冲然后通过AJAX发送给第三方。当然,这在技术上是可行的,你可以使用它来捕获登录,虽然我还没有证明它...我怀疑你可以通过加载图像并在查询中通过额外的按键来执行此操作串。第三方域上的目标映像是一个处理脚本,然后记录。

我怀疑您也可以通过这种方式劫持会话,因为您可以从远程计算机获取会话标识符以传回。

当然,编码人员可以防范这些,这只会带来相当大的一袋邪恶。