用JRun / ColdFusion强制HttpOnly cookie

时间:2009-06-26 10:41:53

标签: cookies coldfusion jrun httponly jsessionid

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

我们正在使用jsessionid来控制我们的会话,而JRun并没有将其创建为HttpOnly。

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

有什么建议吗?


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

3 个答案:

答案 0 :(得分:3)

来自: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>

答案 1 :(得分:3)

首先,热烈欢迎所有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.01 Dcoldfusion.sessioncookie.httponly

有官方设置

我在ColdFusion MX7上测试了它,它按预期工作。 Dodged Appscan我做了。

答案 2 :(得分:0)

  
    

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

  

如果我错了,请纠正我,但如果请求通过HTTP传入,则需要重定向到HTTPS。在将请求发送到ColdFusion之前,您是否可以使用URL重写规则来捕获它?