2012-03-30 108 views
4

因为ColdFusion具有可预测的CFID,所以我们一直在失败我们的PCI扫描。我们得到的确切FAIL是“可预测的Cookie会话ID”。现在CFTOKEN不再是可预测的了,因为我已经将CF配置为使用CFUKEN的UUID,但是,CFID仍然可以预测并且不受CF管理员中的任何更改的影响。如何保护CFID符合PCI标准?

我不知道为什么CFID可以预测是一种威胁,但他们希望我们解决它。

我一直无法通过googeling找到关于此事的任何事情,我真的不知道还有什么可以做的。

有没有其他人处理过这样的事情?有什么建议么?

编辑:这里是我的Application.cfc文件看起来像:

<cfcomponent output="false"> 

    <cfset this.name="DatabaseOnline"> 
    <cfset this.sessionManagement=true> 
    <cfset this.setDomainCookies=true> 
    <cfset this.setClientCookies=true> 
    <cfset this.sessionTimeOut=#CreateTimeSpan(0,20,0,0)#> 

</cfcomponent> 

我的CF管理看起来是这样的:http://i.imgur.com/k9OZH.png

那么,如何禁用CFID?

回答

5

使用J2EE会话变量应解决该问题。

要做到这一点去CF管理员。服务器设置 - >内存变量并选中“使用J2EE会话变量”复选框。

您可以在这里找到http://helpx.adobe.com/coldfusion/kb/predictable-cookie-session-ids-reported.html

+1

这正是我所做的,它确实为CFTOKEN处理了它,但他们也希望CFID被随机化,这是我没有得到的。我没有听说有其他人需要随机化CFID,我甚至不知道这是否可能,因为CF需要跟踪用户。 – Amir 2012-03-30 13:10:39

+0

您应该不再需要获取CFID Cookie,因为启用该设置会将它们替换为jsession Cookie。尝试清除您的Cookie并重新开始。 – baynezy 2012-03-30 13:33:58

+1

即使启用了J2EE会话变量,除非将其关闭,否则您仍将获得CFID和CFTOKEN Cookie。看到这个答案:http://stackoverflow.com/a/268986/21960 – ale 2012-03-30 13:46:27

3

的扫描代理的CFID是连续的,但不是有效的没有相应的CFTOKEN的cookie是随机的一些详细信息,解释。由于会话不能单独使用ID进行劫持,因此可以缓解扫描失败的原因。他们的自动化测试假定CFID cookie自己控制会话,事实并非如此。我曾与之合作过的每家扫描供应商都已将此视为缓解因素,并在基于CF的网站上为我禁用或取消该特定测试。

或者,如果CF服务器上没有站点使用会话变量,则可以完全禁用会话管理,CF根本不会发出cookie。如果需要它们,上述关于如何管理CF会话的解释应该会让你彻底解决。

+0

非常感谢你,我认为这可能会帮助我。网站上有一些需要会话变量的部分,但我认为(我希望我正是这样做的),通过将这两件事添加到我的application.cfc文件中: 它应该为我处理这个问题。这种方式仍然有效,但他们使用je J2SEE。就像我说过的,我并不是100%确定所有这些,但这听起来对我来说很合适。 – Amir 2012-03-30 18:27:07

+0

请记住,“客户端”变量与“会话”变量是分开的(在“clientManagement”设置的情况下)。如果禁用“setClientCookies”,它将不会自动发送CFID和CFTOKEN cookie,并且您需要确保这些值在使用会话管理/变量的页面的URL上传递。 – 2012-04-16 17:14:18