【问题标题】:In which scenarios it is acceptable to disable Same Origin Policy of browsers?哪些情况下可以禁用浏览器的同源策略?
【发布时间】:2017-01-06 05:06:47
【问题描述】:

我想向与客户端站点不同域中的站点发出 HTTP GET 请求。最终目标是在客户端站点中为源站点中的数据显示仪表板。源站点的服务器未配置 CORS,因此无法使用 JavaScript 进行简单的 AJAX 调用。

所以我有两个选择,要么设置代理,要么禁用浏览器的同源策略。该仪表板将显示在专用机器上的公共显示器上。是否可以禁用浏览器的同源请求限制,因为它仅用于此目的?谢谢。

【问题讨论】:

  • 根据您的需要,您可以禁用它。 CORS 的主要目标是防止 XSS 攻击。如果您有一个特定的场景,您可以通过其他方式保护您免受 XSS 的侵害,而不是继续在浏览器上禁用它。只是不要指望其他人会在他们的浏览器上禁用这些设置。
  • @Phil - 感谢您的资源,但使用第三方代理或 jsonp 对我来说不是一个选项。
  • @dave - 感谢您提到 XSS 攻击。在这里,通过 CORS,我们正在保护我们的站点,以防外部站点(数据源)受到损害,对吗?那么,如果我们可以信任外部站点的安全性,我们可以在我们的机器上禁用 CORS 吗?
  • @danielf。是的,你是对的。我在我的 cmets 中有一些错误陈述,但如果你阅读我的回答,它与你指出的一致。

标签: javascript cors httprequest same-origin-policy


【解决方案1】:

您还有另一个未提及的选项:从外部站点服务器端获取数据,并将其传递到您自己的仪表板。顺便说一句,这是首选方式。

【讨论】:

  • 嗨,丹尼尔,是的,我知道。问题是我的雇主希望在 SharePoint Online 上显示此仪表板,而 SharePoint Online 不允许服务器端代码。确实,如果可行,我很乐意按照您的建议去做。感谢您的建议。
  • 我明白了,有道理。而您发送请求的另一个站点甚至不支持 jsonp 类型的响应?
  • 对于另一个站点,我需要发送一个带有请求的令牌以进行身份​​验证。 jsonp 不允许标题对吗?有没有办法可以发送带有 jsonp 的令牌?当我尝试 jsonp 时,我得到了未经授权的响应,但跨源错误消失了。因此,如果我可以对我的请求进行身份验证,那么 jsonp 将是一个好主意。
【解决方案2】:

您可以禁用它,但您需要了解其后果。单源策略的主要目标是帮助防止 XSS 攻击。 SOP 可防止用户在不知不觉中代表他们发出恶意 AJAX 请求。

在禁用跨域资源共享的情况下,如果恶意 JavaScript 被注入到浏览器会话中,比如通过广告网络,那么 JavaScript 将被阻止连接到用户的网上银行页面等操作。

当您不加选择地绕过浏览器中的 SOP 时,任何浏览会话都可能受到这种方式的攻击。如果您在一个安全的网络上,并且可以保证您的网站没有受到威胁,并且浏览器不会被用于其他目的,那么您就可以保证是安全的。

另一方面,一旦有人使用该浏览器连接到未知站点,您就打开了攻击媒介。最好不要弄乱该设置,但只有您可以确定最适合您的特定场景的设置。

【讨论】:

  • “当您禁用此设置时,如果您的网站遭到入侵并且攻击者能够将一些 JavaScript 注入您的页面,那么该恶意代码可以代表您的用户进行 AJAX 调用。” – 不。真的不是。如果您在浏览器中禁用同源策略,那么攻击者可以做到这一点即使您的网站没有受到威胁,他们可以对任何网站这样做,而且它不是针对“您的用户”的if "对于使用安全策略被破坏的浏览器的用户"。
  • “CORS 的主要目标是防止 XSS 攻击。” ——不,不是。同源策略某种就是这样做的。 CORS 选择性地禁用同源策略。
  • @Quentin 1. 我相信我在第三段中已经清楚地说明了这一点,而您引用的内容并非来自我发布的答案。 2. 我并没有说它完全可以防止 XSS,但我会进行编辑以使其更清晰
  • 第二段是一个巨大的红鲱鱼。如果一个网站直接容易受到 XSS 攻击,那么浏览器中的其他安全漏洞就无关紧要了。
  • 第三段也没有什么意义。如果用户登录到某个站点(或者如果它是一个由于其他原因而私有的站点,例如位于 LAN 上,例如公司内部网),则该站点可能会受到影响。它不需要用户浏览到它。
猜你喜欢
  • 2013-05-18
  • 2011-06-06
  • 2018-07-30
  • 2010-09-24
  • 2011-05-04
  • 2014-05-29
  • 1970-01-01
  • 1970-01-01
  • 2012-08-04
相关资源
最近更新 更多