什么是当前的CF9.02会话Cookie管理最佳实践?

时间:2012-09-12 23:50:49

标签: coldfusion session-cookies coldfusion-9

ColdFusion cookie会话cookie管理的常见“最佳实践”是实现类似的东西:

<cfset this.setClientCookies = false />
<cfif NOT IsDefined( "cookie.cfid" ) OR NOT IsDefined( "cookie.cftoken" )>
    <cfcookie name="cfid" value="#session.cfid#" domain=".#cgi.HTTP_HOST#" path="/test/sessiontest">
    <cfcookie name="cftoken" value="#session.cftoken#" domain=".#cgi.HTTP_HOST#" path="/test/sessiontest">
</cfif>

OR

<cfif IsDefined("Cookie.CFID") AND IsDefined("Cookie.CFTOKEN")>
    <cfcookie name="CFID" value="#Cookie.CFID#">
    <cfcookie name="CFTOKEN" value="#Cookie.CFTOKEN#">
</cfif>

取决于你与谁交谈。

Adob​​e随后发布了http://www.adobe.com/support/security/bulletins/apsb11-04.html以及稍后针对此原始修补程序的修复程序,此处讨论了这一问题:http://www.shilpikhariwal.com/2011/03/update-on-security-hot-fix-feb-2011.html

原始修复程序导致此处描述的许多问题:http://cfsimplicity.com/4/coldfusion-security-hotfix-changes-session-behaviour此修复程序(以及Web上的许多其他类似修复程序)通过修改上面的cfcookie代码来工作。

一年之后,我想知道在运行CF9.02时人们正在为CFID / CFToken管理做些什么(即应用会话固定修复程序。)

1 个答案:

答案 0 :(得分:1)

嗯,不使用CFID / CFToken。我多年没有使用这些客户端变量,而是使用ColdFusion会话管理。相信来自客户的那些(在我看来)是太冒险了。

Adob​​e docs实际上有一篇关于管理客户端状态的非常好的文章:Managing the client state

您还需要使用CFID / CFToken是什么情况?

Adob​​e文章的摘录:

  

拥有用户CFToken和CFID Cookie的黑客可以通过使用被盗的CFToken和CFID Cookie在用户会话期间访问网页来获取用户数据。虽然这种情况不太可能,但理论上是可行的。

     

您可以通过选择ColdFusion Administrator Memory Variables页面上的Use J2EE Session Variables选项来删除此漏洞。 J2EE会话管理机制为每个会话创建一个新的会话标识符,并且不使用CFToken或CFID cookie值。