理论 - JavaScript 链接重定向安全问题

Theoretical - JavaScript link redirection security issue

提问人:Madara's Ghost 提问时间:11/15/2011 更新时间:11/15/2011 访问量:196

问:

下面是一个理论问题,我希望有人能够给出答案。

我探索了一下,发现以下情况非常(危险)可能:

$('#link').click(function() {
    window.location = 'http://www.malicious-example.com';
    return false;
});

如这个实时示例所示。


现在我可能对 JavaScript 不是很敏锐,但这似乎是一个巨大的安全漏洞,我的意思是,浏览器认为并显示(在底部)链接确实会 http://google.com,当它最终会导致 http://www.malicious-example.com 时。

有没有人有关于这个问题的任何信息?有没有采取什么措施来照顾它?

JavaScript 安全性 XSS

评论

0赞 check123 11/15/2011
我认为一个叫做“网络钓鱼”的广义术语就是你要解决的问题。
0赞 david 11/15/2011
如果你跌倒了,这是一个问题,不要使用javascript
0赞 davin 11/15/2011
这是糟糕的可用性设计,而不是安全漏洞。

答:

2赞 Alex Turpin 11/15/2011 #1

对此无能为力,老实说,我几乎看不到这种担忧。勉强访问网页很少是有害的,如果一个网站要这样做,为什么不在页面加载后立即重定向用户呢?

JavaScript 曾经存在一些问题,主要与警报和取消页面更改的能力有关,但大多数合适的浏览器都以各种方式处理它们。例如,如果非常快速地发出两个警报,则可以选择关闭所有进一步的警报,浏览器现在可以检测页面是否试图阻止用户离开,并输出自己的消息。

评论

0赞 hdgarrood 7/12/2014
“几乎不访问网页很少是有害的”——事实并非如此。假设我让你访问一个网页,我把JS放在页面上,向你的银行发起请求。如果请求是 - 除非您的银行已采取特定步骤来解决此问题,否则攻击者很可能能够发起转账。这被称为跨站点请求伪造,只是“访问”网页可能非常有害的一种方式POST /transfer?to=attacker&amount=99999
0赞 Alex Turpin 7/13/2014
我认为我的“很少”使我的陈述成为现实。CORS 将阻止 POST 请求发生这种情况。如果您的银行使用 GET 请求在单个步骤中进行了转账,您可以使用图像,但我甚至愿意说这样的银行网站将非常罕见,无法找到。
0赞 sstendal 11/15/2011 #2

这很好地说明了纯 html 网页和 javascript 页面之间的区别。带有 javascript 的网页实际上是一个小程序。当你运行这个程序时,你必须在某种程度上信任程序员。程序员可能会像你演示的那样“重新编程”链接,但他可以做的不止于此。他不必等待您点击链接。他可以将该动作与将鼠标悬停在图像或其他完全无辜的动作上联系起来。

Javascript 是一种强大的语言。这使得它很有用,但它也使它具有潜在的危险,就像用其他编程语言编写的程序一样。