it-swarm.cn

使用瞬变来存储验证码

我只是想知道这样的事情是否有效:

  • 该页面显示一个表单,其中包含验证码。
  • 生成此表单时,会设置 瞬态 来存储验证码。
  • Vistor提交表单
  • 提交后$_POST['captcha']与数据库中的瞬态进行比较;如果匹配则返回成功,否则失败
  • 删除瞬态

你怎么看?这样安全吗?

2
Alex

我认为,虽然这种方法可以是安全的,但是在验证码图像/音频/媒体的安全性以及缓存等性能优势方面,使用现成的验证码系统有许多优点。 。例如,如果您使用基于JavaScript的验证码小部件,那么基础WordPress生成的页面实际上可以通过许多缓存插件完全缓存为静态页面。如果您每次都在PHP中生成验证码,那么这是不可能的

如果你确实沿着这条路走下去,你还要做的一件事就是在表单中添加一个隐藏的随机数,以确保响应验证码的用户代理是你刚刚为它生成的用户代理。 WordPress的wp_nonce函数可以帮助您轻松完成此操作。否则,如果您没有仔细清除验证码瞬变,则可能有人使用验证码缓存该页面并让另一个用户代理发送响应。

1
mitcho