感谢任何帮助。
使用cfimage生成验证码时,我们将其值保存在会话变量中。
用户提交表单后,我们将用户输入的验证码的值与会话变量值进行比较。
像这样:
第一步 - 用户使用验证码到达表单。
第二步 - 使用cfimage创建的验证码值创建变量SESSION.CAPTCHA_VALUE。
第三步 - 用户填写表格并提交。
第四步 - 我们将SESSION.CAPTCHA_VALUE的值与用户输入的值进行比较。
我们实施此操作是因为垃圾邮件机器人。
问题在于仅在Firefox中SESSION.CAPTCHA_VALUE的值。提交后,SESSION.CAPTCHA_VALUE的值始终与创建的值不同,但保留了JSESSION.ID。
我们在Tomcat和Firefox 3.5.3中使用ColdFusion。
提前致谢。
答案 0 :(得分:1)
你负载均衡吗?会话范围存储在RAM中,如果您在不同的服务器上来回弹跳,可能会导致问题。您可以尝试将值存储在客户端var而不是会话中。
此外,CFImage ...以及生成cfform(flash时),cfdocument等文件的其他标签将通过编写文件然后生成它在HTML中输出的链接来运行。确保指向该文件的链接始终是唯一的。可能是您有图像的交叉污染。同样,如果您的负载平衡且您的服务器没有共享公共文件系统(例如在NAS上),那么人们可能会从其他服务器中获取图像。