我必须实现验证码以停止机器人,但问题是我在一个应用程序中工作,我们没有在客户端创建任何东西(没有 cookie 等),我们没有创建任何会话。
一种可能性是我们为用户创建验证码图像和一个秘密字符串(作为隐藏参数),并且在提交页面时,可以使用相同的信息使用一些密钥来验证验证码。秘密字符串将使用服务器上的密钥创建,并且相同的密钥将用于验证验证码。但是任何聪明的恶意用户都可以保留这两个输入(或任意数量的输入参数),并且可以在以后随时使用这些参数进行身份验证。我可以在验证码上放置一些时间戳,但在多服务器/集群架构中它可能会导致问题,因为该时间戳文件需要在服务器之间和服务器之间同步。
还能有其他的可能吗?
我需要实现它的架构 - 多服务器/多集群没有用户的信息存储在服务器中,不能创建 cookie 或会话