验证码可重放,导致黑客可以无视验证码暴力破解

提交失败,而验证码不刷新,黑客是不是可以进行暴力破解?
要如何完善验证码机制

只要提交一次服务器端直接remove掉那个保存验证码的session就行了。如果你想客户端体验好就用js重新更新下img加载的验证码重新生成

限制验证次数,验证3次后(失败后),自动刷新验证码,连续刷新几次后,还没验证成功的,客户端,刷新按钮禁用,等5秒后再接收刷新请求

由于HTTP一次回应只能是文本或者图片等二进制数据,不能同时包含,这样验证码图片的获取和操作页面的获取就必然是两次HTTP请求。也就是说请求操作页面和请求验证码图片的操作不是原子的。这样,如果用户第一完整的请求了操作页面和验证码图片,以后就只请求宿主页面不再请求验证码图片,这样验证码就永远维持在第一次显示的验证码了。这样就为一些含验证码网页的暴力破解提供了一种可能。