使用ColdFusion,Tomcat和Firefox的会话变量出现问题

时间:2009-09-10 16:05:28

标签: firefox tomcat coldfusion

感谢任何帮助。

使用cfimage生成验证码时,我们将其值保存在会话变量中。

用户提交表单后,我们将用户输入的验证码的值与会话变量值进行比较。

像这样:

第一步 - 用户使用验证码到达表单。

第二步 - 使用cfimage创建的验证码值创建变量SESSION.CAPTCHA_VALUE。

第三步 - 用户填写表格并提交。

第四步 - 我们将SESSION.CAPTCHA_VALUE的值与用户输入的值进行比较。

我们实施此操作是因为垃圾邮件机器人。

问题在于仅在Firefox中SESSION.CAPTCHA_VALUE的值。提交后,SESSION.CAPTCHA_VALUE的值始终与创建的值不同,但保留了JSESSION.ID。

我们在Tomcat和Firefox 3.5.3中使用ColdFusion。

提前致谢。

1 个答案:

答案 0 :(得分:1)

你负载均衡吗?会话范围存储在RAM中,如果您在不同的服务器上来回弹跳,可能会导致问题。您可以尝试将值存储在客户端var而不是会话中。

此外,CFImage ...以及生成cfform(flash时),cfdocument等文件的其他标签将通过编写文件然后生成它在HTML中输出的链接来运行。确保指向该文件的链接始终是唯一的。可能是您有图像的交叉污染。同样,如果您的负载平衡且您的服务器没有共享公共文件系统(例如在NAS上),那么人们可能会从其他服务器中获取图像。