【发布时间】:2014-02-16 01:06:33
【问题描述】:
假设我们允许跨域 Ajax 请求。
代码如下所示:
$.post('http://google.com/get/emails/all', function(emails){
// I can see your emails
readAllEmails(emails);
});
这个电话有什么安全风险,mail.google.com 不会拒绝这个请求然后就结束了吗?
编辑 澄清上面的问题。
在上面的场景中,cookie 被发送到 mail.google.com。是您的浏览器当前存储的所有 cookie 还是只是域 cookie?如果它是所有的 cookie,那么我理解为什么跨域 ajax 调用是一个问题。但是,如果是这种情况,我不明白为什么浏览器会发送所有 cookie,有什么好处?
【问题讨论】:
-
你从哪里得到这个?这不是跨域 AJAX 所做的。
-
您的理解存在严重缺陷。来自 John Doe 的不良站点的页面无法向
mail.google.com进行 AJAX 调用。这样做会违反同源政策,因此是不允许的。跨域 AJAX 仅允许拥有不损害某人隐私或财产的设施的站点。谷歌邮件不是这样的网站,但(有一些限制)谷歌地图可能是这样的一个例子。 -
@Pointy 我已经更新了我的问题。我的问题的第一部分是针对我要问的另一个问题。
-
"不会 mail.google.com 拒绝该请求" 那么,假设这可行,您为什么认为 mail.google.com 可以拒绝该请求?我认为,如果这确实有效,他们可能无法区分用户发起的请求和恶意脚本发起的请求,这首先是整个问题。
-
@Mr. Smee:这是不正确的,因为用户会有 cookie,因为您正在执行对
google.com的请求,您有 cookie。 Cookie 是根据您发送到的域发送的,而不是您发送的位置。
标签: javascript ajax javascript-security