我们需要确保CF7网站上的所有Cookie都设置为HttpOnly。
我们正在使用jsessionid来控制我们的会话,而JRun并没有将其创建为HttpOnly。
虽然可以修改现有的cookie来添加此设置,但我们需要从一开始就将其设置为HttpOnly。
有什么建议吗?
答案 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重写规则来捕获它?