我希望能得到一些关于如何使用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似乎也会失效。我试过几件事,包括:
据我所知,调试后。这个应用程序确实可以重定向到HTTPS,但是cookieName在document.cookie中没有发现。(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中有简单的代码片段,但是w/ CSP我们希望将它保存在一个初始化器中。有什么建议吗?
谢谢!
发布于 2015-01-02 01:08:52
您应该强制从HTTP重定向到服务器的HTTPS,因为从客户端进行重定向并不会增加任何真正的安全性。
想想看,用户已经从一个不安全的端点下载了应用程序到他们的浏览器,从那时起,什么都不能信任。即使是基于服务器的重定向也有问题,因为它依赖于来自不受信任端点的重定向通知。用户实际上应该从一个初始的可信起点访问事物,否则所有的赌注都会被取消。这被称为安全引用问题,并且可能永远不会解决,因为SSL证书背后的业务模型。
您也不应该真正信任可信HTTPS域中来自不受信任HTTP域的cookie,除非您有一种方法在客户端上验证这些cookie。RFC 2109中介绍了HTTP/HTTPS之间的Cookie共享(第4.2.2节-Cookie语法)。
这意味着:
https://stackoverflow.com/questions/27568520
复制相似问题