繁体   English   中英

脚本标签工作时为什么禁止跨域ajax?

[英]Why forbid cross-domain ajax when script tags work?

由于在脚本标记中使用JSONP直接从不同的域获取数据是直截了当的,我们不应该允许XMLHttpRequest也这样做吗? 声称它可以解决它时加强安全性没有多大意义,尽管语义更加混乱。

JSONP仅在提供者允许时才有效。

如果跨域AJAX工作,首先问题之一是人们发布到其他域,希望你有一个经过身份验证的帐户。 这是CSRF。

他们可以获取一个经过身份验证的页面,获取您的令牌,然后使用您的令牌发布恶意内容(告诉应用程序这是一个内部请求)。

实际上JSOP是针对相同原始策略的局限性的一个聪明的解决方法,但它本质上是一种自我造成的跨侧脚本攻击(请记住,JSONP通过使用脚本标签而不是XHR来进行操作,因此您可以完全控制整个页面对你的JSONP数据提供者 - 通常他们不是邪恶的,但有时他们是无能的,所以记住这一点)。

关于如何在新版本的ECMAScript中修复相同的源策略有很多讨论,因为如果必须绕过它来制作任何类型的mashup,它显然不起作用。 在我看来,一个有趣的想法是拥有一个更便宜的XHR版本,它不会发送cookie或无用的头文件,因此可以防止跨站点请求伪造攻击,但仍然允许安全的mashup,而不会让数据提供者完全访问你的页面。 但我们还是要等待它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM