【问题标题】:Redirecting from HTTP to HTTPS w/ Simple Auth使用简单身份验证从 HTTP 重定向到 HTTPS
【发布时间】:2014-12-19 14:55:56
【问题描述】:

我希望获得一些关于如何使用带有 ember-simple-auth 的 ember 初始化程序将用户从 HTTP 重定向到 HTTPS 的建议。

`import ENV from 'cio/config/environment'`

SSLInitializer =
  name: 'ssl'
  before: 'simple-auth-cookie-store'
  initialize: (container, application) ->
    application.deferReadiness()

    # Redirect if hitting HTTP and SSL is enabled
    if ENV.SSL and window.location.protocol is "http:"
      window.location.href = "https:" + window.location.href.substring(window.location.protocol.length)
      return false

    application.advanceReadiness()

`export default SSLInitializer`

但是,即使 if 语句的计算结果为 true,cookie 似乎也会失效。我尝试了几件事,包括:

  • 之前:'simple-auth'
  • 之前:“商店”
  • application.destroy() 在 if 语句中,在 window.location.href 设置之前

据我所知,调试后。该应用程序确实重定向到 HTTPS,但是在 document.cookie 中找不到 cookieName。 (https://github.com/simplabs/ember-simple-auth/blob/master/packages/ember-simple-auth-cookie-store/lib/simple-auth-cookie-store/stores/cookie.js#L154)

在此方法起作用之前,因为我们在 index.html 中有简单的 sn-p,但是使用 CSP,我们希望将其保留在初始化程序中。有什么建议吗?

谢谢!

【问题讨论】:

  • 为什么要在初始化程序中而不是从服务器中执行此操作?不知道您是否使用授权者,但如果您是服务器,则无论如何都不能响应任何非 HTTPS 请求。
  • 所有资产都通过各种 AWS 服务(S3、Route53 等)在 CDN 中提供,因此我们没有真正可以使用的 nginx 或 apache 配置使用。
  • 是的,UI 只与 API 通信,因此前端资产的托管只通过 CDN 提供服务。
  • 您是否设置了带有安全标志的cookie?也许我不明白您所说的“cookie 失效”是什么意思,您能详细说明一下吗?

标签: ember.js ember-simple-auth


【解决方案1】:

您确实应该从服务器强制从 HTTP 重定向到 HTTPS,因为从客户端执行此操作不会增加任何真正的安全性。

想想看,用户已经从一个不安全的端点将应用程序下载到了他们的浏览器中,从那时起,就没有什么可以信任的了。即使是基于服务器的重定向也是有问题的,因为它依赖于来自不受信任端点的重定向建议。用户真的应该从最初的受信任起点访问事物,否则所有赌注都将失败。这就是所谓的安全推荐问题,由于 SSL 证书背后的商业模式,它很可能永远不会得到解决。

您也不应该真正信任来自受信任 HTTPS 域中不受信任 HTTP 域的 cookie,除非您有办法在客户端上对这些 cookie 进行身份验证。 RFC 2109(第 4.2.2 节 Set-Cookie 语法)介绍了在 HTTP/HTTPS 之间共享 cookie。

这意味着:

  • 设置为“安全”的 cookie 将仅在 HTTPS 上可用
  • 没有“安全”的 cookie 集将在 HTTP 或 HTTPS 上可用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-25
    • 1970-01-01
    • 1970-01-01
    • 2011-07-01
    • 1970-01-01
    相关资源
    最近更新 更多