0

跨域 ajax 请求被拒绝,但我可以通过以下方式解决它:

$(document).ready(function () {
  var data = ...;
  $('<img>').attr('src', 'http://domain.com?data=' + escape(data)).appendTo('body');
});

因此,如果我真的想要,我可以数据发送到另一个域。我也可以以相同的方式获取数据,但在加载时我可以将其移动到画布上,然后读取像素。

那么这个限制有什么意义,它可以从中节省什么?

4

2 回答 2

3

当图像来自另一个域时,您仍然无法在 javascript 中读取图像的像素。所以你什么都没绕。

如果没有服务器的协作,页面就无法操作甚至读取来自另一个域的内容。这可以保护用户免受许多操纵(谷歌 XSS 攻击)。

于 2012-09-11T16:12:19.870 回答
2

那么这个限制有什么意义,它可以从中节省什么?

关键是防止您的站点从远程站点读取数据,而不是阻止它发送数据。

例如,您不能让我的浏览器转到我的银行并获取我的帐户详细信息,以便将它们发送到您的网络服务器。

同源策略不会阻止您提交将资金转移到您的服务器的请求,但这就是站点必须实施针对CSRF 攻击的防御措施的原因。

于 2012-09-11T16:15:17.583 回答