【问题标题】:Forcing HttpOnly cookies with JRun/ColdFusion使用 JRun/ColdFusion 强制使用 HttpOnly cookie
【发布时间】:2010-11-06 02:43:51
【问题描述】:

我们需要确保 CF7 网站上的所有 cookie 都设置为 HttpOnly。

我们使用 jsessionid 来控制我们的会话,而 JRun 不会将其创建为 HttpOnly。

虽然可以修改现有 cookie 以添加此设置,但我们需要从一开始就将其设置为 HttpOnly。

有什么建议吗?


相关问题:Setting Secure flag for HTTPS cookies.

【问题讨论】:

    标签: cookies coldfusion jrun httponly jsessionid


    【解决方案1】:

    发件人:http://www.petefreitag.com/item/764.cfm

    运行 CF 8 或更低版本并使用 Application.cfc

    <cfcomponent>
      <cfset this.sessionmanagement = true>
      <cfset this.setclientcookies = false>
      <cffunction name="onSessionStart">
          <cfheader name="Set-Cookie" value="CFID=#session.CFID#;path=/;HTTPOnly">
          <cfheader name="Set-Cookie" value="CFTOKEN=#session.CFTOKEN#;path=/;HTTPOnly">
      </cffunction>
    <cfcomponent>
    

    确保您已指定 setclientcookies = false。

    如果使用 Application.cfm

    如果您仍在使用 Application.cfm 文件,则可以使用以下内容:

    <cfapplication setclientcookies="false" sessionmanagement="true" name="test">
    <cfif NOT IsDefined("cookie.cfid") OR NOT IsDefined("cookie.cftoken")>
       <cfheader name="Set-Cookie" value="CFID=#session.CFID#;path=/;HTTPOnly">
       <cfheader name="Set-Cookie" value="CFTOKEN=#session.CFTOKEN#;path=/;HTTPOnly">
    </cfif>
    

    【讨论】:

      【解决方案2】:

      首先,热烈欢迎所有 PCI DSS 难民!还邀请了 Appscan、Webinspect、Hailstorm 和 NTOSpider 逃犯。在这边坐下,我有蛋糕给你:

      虽然对 Peter 来说为时已晚,但实际上可以让 JRun 按照他的要求从一开始就生成 HTTPOnly(和安全)cookie。查找jrun-web.xml 文件。它可能在像

      这样的目录中

      C:\JRun4\servers\servername\cfusion-ear\cfusion-war\WEB-INF\

      您必须将以下内容添加到cookie-config section

      <cookie-config>
          <cookie-path>/;HttpOnly</cookie-path>
      </cookie-config>
      

      如果您的网站是 HTTPS,您还应该启用安全 cookie 选项。但要小心,它是服务器范围的,而不是特定于应用程序的。所以它可能不适合你的共享环境:

      <cookie-config>
          <cookie-secure>true</cookie-secure>
          <cookie-path>/;HttpOnly</cookie-path>
      </cookie-config>
      

      如果你没有卡在MX7或者CF8,官方有设置this in CF9.01Dcoldfusion.sessioncookie.httponly

      我已经在 ColdFusion MX7 上对此进行了测试,它按预期工作。我躲过了 Appscan。

      【讨论】:

        【解决方案3】:

        目标是确保第一个请求是安全的(并通过扫描),所以如果这篇文章涵盖了这一点,那么它将解决问题。

        如果我错了,请纠正我,但如果请求通过 HTTP 传入,听起来您需要重定向到 HTTPS。在将请求发送到 ColdFusion 之前,您不能通过 URL 重写规则来捕获这一点吗?

        【讨论】:

        • 不幸的是,我们正在使用 IIS 5,所以如果没有昂贵的、有缺陷的第三方插件,就无法进行 URL 重写。除非在 JRun 级别可以进行一些重写?
        • 我不知道有任何 JRun 级别的 url 重写器。在 IIS 5 上运行似乎是一个奇怪的要求......但我当然可以理解,有时你必须使用你所拥有的东西。祝你好运! :)
        猜你喜欢
        • 2021-11-17
        • 2010-11-06
        • 2019-12-19
        • 1970-01-01
        • 2019-10-28
        • 2018-10-05
        • 2012-10-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多