【问题标题】:Why Cross-Domain AJAX call is not allowed?为什么不允许跨域 AJAX 调用?
【发布时间】:2011-07-19 23:25:37
【问题描述】:

除了 JSONP,为什么要遵循相同的域策略?

【问题讨论】:

标签: ajax jquery same-origin-policy


【解决方案1】:

因为Same origin policy

存在同源策略以防止恶意使用资源。如果没有管理跨域脚本访问的规则,那么对毫无戒心的用户造成各种破坏将是微不足道的。例如,恶意网站很容易将您的会话信息抓取到另一个站点并代表您执行操作。

举个例子,考虑一下:

您访问您最喜欢的网络邮件程序 - 它可以是 Gmail、Yahoo 邮件、Hotmail 或私人内部公司网络邮件程序。

登录并检查您的电子邮件后,您单击指向恶意网站的链接,该网站在新标签页中打开。

恶意网站检查 http 引用并发现您来自您的电子邮件帐户。

使用跨域脚本,恶意网站会回到您的电子邮件选项卡并下载您的地址簿和所有电子邮件(或者在您关闭弹出窗口之前可以获取的任何电子邮件)。

随后,在扫描您的电子邮件以获取密码、财务数据和其他敏感材料后,它会向您的所有联系人发送一封您认可同一网站的电子邮件。 这只是一个例子。更阴险的情节是恶意第三方利用您的浏览器爬取您公司的内网,将您作为不知情的帮凶泄露机密信息!

更多关于http://jimbojw.com/wiki/index.php?title=Introduction_to_Cross-Domain_Ajax

【讨论】:

    【解决方案2】:

    出于安全原因,已实施同源政策​​;引用wikipedia的相关句子:

    这种机制具有特定的 现代网络的意义 广泛依赖的应用程序 在 HTTP cookie 上维护 经过身份验证的用户会话,如 服务器根据 HTTP cookie 进行操作 泄露敏感信息 信息或采取状态改变 行动。
    严格的分离 在不相关提供的内容之间 网站必须在客户端维护 侧面防止数据丢失 机密性或完整性。

    基本上,您不希望任何给定的网站 (就像您可能正在浏览的任何网站一样 - 我们都知道人们有时会访问您不应该信任的网站)访问来自任何其他人的数据(例如您的网络邮件或社交网络上的帐户)

    【讨论】:

    • 使用新鲜的 cookie 能否轻松避免安全问题?
    猜你喜欢
    • 1970-01-01
    • 2018-12-26
    • 2012-11-03
    • 1970-01-01
    • 1970-01-01
    • 2016-03-03
    • 2014-06-22
    • 2017-01-23
    • 1970-01-01
    相关资源
    最近更新 更多