首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >允许CORS策略:可以为跨域、经过身份验证的请求检索和解析响应?

允许CORS策略:可以为跨域、经过身份验证的请求检索和解析响应?
EN

Stack Overflow用户
提问于 2013-10-04 09:36:16
回答 2查看 800关注 0票数 0

我在这个网站上读了几十篇很棒的帖子后,注册了这个问题。下面是我尚未回答的问题,这个问题必须承认是应用程序安全的焦点:

对于在调用REST服务时返回以下标头的站点:

代码语言:javascript
复制
Content-Type: application/json
Access-Control-Allow-Origin: *

对于返回敏感数据的服务来说,认识到这种允许的CORS策略是不好的做法,但我必须证明威胁参与者是否有可能代表经过身份验证的受害者调用经过身份验证的 REST服务(cookie auth),以便威胁参与者能够看到响应。

我理解此标志指示浏览器发送相关的cookie以及跨域请求:

代码语言:javascript
复制
withCredentials: true

我注意到浏览器拒绝允许威胁参与者解释返回的响应,这意味着JSON对象将返回到浏览器(代理或数据包捕获就可以证明),但威胁参与者无法访问DOM。

例如,当我通过jQuery调用上述REST服务时,Chrome会生成这样的消息:“当凭据标志为真时,不能在访问控制中使用通配符-允许-原产地”。如果我尝试JSONP,就会收到消息"Uncaught :意外令牌:“,因为我没有权限修改REST服务逻辑以返回正确的回调字符串。

威胁参与者真的不可能成功地利用过度许可的CORS策略来调用REST服务并代表受害者的经过身份验证的会话检索/解析/返回其响应吗?

我担心:

  • 我不知道有一两个诡计
  • 有些浏览器可能无法有效地防止这种“攻击”。

任何洞察力都是非常感谢的,因为我不是一个开发人员--谢谢!

EN

回答 2

Stack Overflow用户

发布于 2013-10-04 16:55:48

在接受有证书的请求时,不能使用通配符。

当响应有证书的请求时,服务器必须指定域,并且不能使用野生梳理1

此外,您需要将以下标题设置为来自REST服务Access-Control-Allow-Credentials: true的响应

票数 1
EN

Stack Overflow用户

发布于 2016-01-15 12:16:31

如果您正在使用Apache,则可以添加一个.htaccess:

代码语言:javascript
复制
SetEnvIf Origin "^http(s)?://(.*)$" origin_is=$0 
Header set Access-Control-Allow-Origin %{origin_is}e env=origin_is

此指令在请求中添加一个与域名一起值的Acess控件允许原点.它在响应头中复制原产地请求的值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19177957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档