栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

当存在诸如JSONP和CORS之类的变通方法时,为什么浏览器具有同源策略?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

当存在诸如JSONP和CORS之类的变通方法时,为什么浏览器具有同源策略?

您的前提不正确。同源策略没有说明网页在外部域中包含资源的能力。这样可以防止通过不同来源的脚本直接访问资源,而无需选择它们。

因此,CORS和JSONP并非Same
Origin策略的解决方法。CORS使Origin可以选择加入具有响应的XHR请求,而JSONP只是一种黑客,它允许外部引用将动态数据返回到页面。

这里的重点是保护您的页面,这样一来就不可能使用XSS。为此,重点应放在正确编码输出到页面的文本上。这将防止“打电话回家”,因为首先不可能进行攻击。一个内容安全策略可以帮助中和管理通过网滑倒任何脚本。您网站上的定期安全漏洞评估应获取未编码的输出-
将CSP视为在找到和修复它们之间的空白,尽管浏览器还不完全支持(尤其是Internet
Explorer)。

但是,XMLHttpRequest不允许这样做,因此Company.com必须使用JSONP,但这将防止数据清理,并可能导致攻击者向页面注入任意Javascript。这是一个更好的解决方案吗?

它不是。CORS是更好的解决方案,因为请求将检索数据而不是可执行代码。CORS允许XMLHttpRequest做到这一点。

使用CORS响应标头

Access-Control-Allow-Origin
,网站所有者
example.com
可以将其设置为

Access-Control-Allow-Origin: https://company.com

以仅允许

company.com
客户端通过用户浏览器通过HTTPS访问数据。

在这种CORS方案中,

example.com
仅信任
company.com
该特定请求的数据响应。与
Access-Control-Allow-Credentials
标头结合使用时,他们可以选择在其浏览器处向用户请求用户的任何授权cookie,并将其与请求一起发送,并在处由Javascript读取响应
company.com

在JSONP情况下,

company.com
将信任
example.com
他们的整个原产地
。这意味着他们信任
example.com
整个客户端站点安全模型。
Example.com
可以对
company.com
网站进行任何操作。因此,如果
example.com
受到黑客的威胁,
company.com
一旦每个用户访问包含
<scriptsrc="https//example.com/
…标签的页面,他们也可以控制用户会话。

换句话说,在哪种情况下,锁定的XMLHttpRequest实际上可以提供更高的安全性吗?

互联网上无处不在。

假设您已登录Gmail。出于争议考虑,假设Gmail具有一种AJAX方法,该方法可以获取您的收件箱内容:

https://gmail.com/services/inbox/get_conversations

现在,您正在浏览网页,并进入了我的网站

evil.com

Evil.com
包含一些向发出POST请求的Javascript
https://gmail.com/services/inbox/get_conversations
,它将在您登录时将cookie从发送
gmail.com
gmail.com

处的服务

https://gmail.com/services/inbox/get_conversations
将忠实地返回收件箱中的内容。

如果没有使用“相同来源策略”

evil.com
将其锁定,则将能够读取此响应中的数据。即任何站点都可以阅读您的电子邮件。使用“相同来源策略”时,数据将返回到浏览器,但没有客户端脚本可以读取数据
gmail.com
(当然还有CORS允许的任何其他来源)。例如,在这种情况下,Google可能允许以下内容:

Access-Control-Allow-Origin: https://google.com

注意:以上所有内容均由我作为示例进行说明,绝不反映Google和Gmail的实际操作方式。原则上是一样的。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/404113.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号