ColdFusion会话跟踪http vs https

时间:2016-04-29 16:57:29

标签: session coldfusion

当用户尝试使用http访问我们的网站时,他们会通过Application.cfc中的此代码重定向到https:

short_hold

奇怪的是,如果他们从未通过http访问该网站,但碰巧点击指向http而非https的内部链接,则会将其注销。但是,一旦他们再次登录,他们就可以访问http链接,重定向到https并保持登录系统。

我做了一些逐行调试,当用户访问http时,https会话被覆盖。但是一旦用户访问http,https就会共享sessionid。

这是正确的行为吗?

在ColdFusion管理员会话设置中,HTTPOnly设置为true,安全cookie设置为false。

4 个答案:

答案 0 :(得分:3)

将它们视为两个完全独立的域。

HTTPS下的会话与HTTP下的会话完全不同。这就是它的运作方式。

您应该将Web服务器配置为仅允许HTTPS以上的连接,并自动将HTTP请求重定向到HTTPS,而不是在应用程序代码级别控制它。

可在此Google Developer page中找到更多信息,但我会粘贴精彩内容。

  

HTTPS保护您网站的完整性

     

HTTPS有助于防止入侵者篡改您的网站与用户浏览器之间的通信。入侵者包括故意恶意攻击者和合法但侵入性的公司,例如向网页注入广告的ISP或酒店。

     

HTTPS保护用户的隐私和安全

     

HTTPS可防止入侵者被动地收听您网站与用户之间的通信。

您希望确保您网站上的内部链接永远不会明确使用HTTPS,因此请查看在布局文件中设置<base href="https://{yourDomain}" >以强制使用所有相对网址{{ 1}}。

答案 1 :(得分:1)

我一直遇到同样的问题,这就解决了。

在Server2008上,在IIS管理器中,打开ASP属性,展开“会话属性”,并将“安全连接上的新ID”更改为“false”。

答案 2 :(得分:0)

一些建议:

  • 第一个简单:这可能不是正确的方向,但如果使用CGI.SERVER_PORT_SECURE而不是使用CGI.HTTPS会发生什么?

  • 如果在从https切换到http时CF正在覆盖会话,为什么不在前端使用Web服务器而不是通过CF处理? IIS和Apache都可以轻松地重写或重定向,这样可以节省您一些时间来处理CF,特别是如果您的整个应用程序都是安全的。

答案 3 :(得分:0)

用户登录的检查似乎是在http到https检查和重定向之前。如果可能,您应首先检查https(重定向,如果是http),然后检查登录。