【问题标题】:ColdFusion Session Tracking http vs httpsColdFusion 会话跟踪 http 与 https
【发布时间】:2016-04-29 16:57:29
【问题描述】:

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

    If (CGI.HTTPS != "on") {
        location(url="https://#Application.PortalApp.GetDomain()##CGI.SCRIPT_NAME#?#CGI.QUERY_STRING#", addtoken="false");
    }

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

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

这是正确的行为吗?

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

【问题讨论】:

    标签: session coldfusion


    【解决方案1】:

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

    HTTPS 下的会话与HTTP 下的会话完全不同。这就是它的工作原理。

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

    更多信息可以在Google Developer page 中找到,但我会粘贴重点。

    HTTPS 保护您网站的完整性

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

    HTTPS 保护您用户的隐私和安全

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

    您需要确保您网站上的内部链接从不明确使用HTTPS,因此请考虑在布局文件中设置<base href="https://{yourDomain}" >,以强制所有相关网址使用HTTPS

    【讨论】:

    • 将此标记为答案,但重要的是要注意 http 会话 id 可以很好地转移到 https,反之则不然。
    【解决方案2】:

    我也遇到了同样的问题,现在解决了。

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

    【讨论】:

    • 没试过,但似乎是一个合乎逻辑的解决方案。
    【解决方案3】:

    几个建议:

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

    • 如果当您从 https 切换到 http 时 CF 正在覆盖会话,为什么不直接在前端使用 Web 服务器而不是通过 CF 来处理呢? IIS 和 Apache 都具有简单的重写或重定向功能,可以节省您尝试处理 CF 的时间,尤其是在您的整个应用程序仍然安全的情况下。

    【讨论】:

      【解决方案4】:

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

      【讨论】:

      • 不,会话检查在 HTTPS 检查之后。
      • 那么,用户点击http,被重定向到https,然后提示登录?是什么让用户在 http 点击时放弃 https 会话?
      • 当用户使用 https 访问我们的站点时,他们会从 ColdFusion 获得一个唯一的会话 ID。如果他们随后通过 http 访问(例如框架或旧书签中的过时链接),则该 https 会话 id 将被他们通过 http 获得的会话 id 覆盖,然后他们被我们的 Application.cfc 从 http 重定向到 https (结果他们被注销)。如果他们在登录之前碰巧通过http访问,则在登录系统后单击http链接时不会被注销。它的原因是 http 会话转移到 https 而不是反之亦然。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-05
      • 1970-01-01
      • 1970-01-01
      • 2011-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多