图片验证码优化技术

关于图片验证码的前文可以访问这里:拷贝过来的图片验证码生成类  

为了防止灌水机等恶意程序对论坛和博客进行宣传性回复(垃圾回复),很多博客使用了图片验证码,如我前文所示

但是如果不小心就会存在一个问题:

  1. 当你打开多个Blog时,图片验证码就生成了多次;
  2. 例如open1.aspx,open2.aspx,open3.aspx;
  3. 如果不小心的话就会存在一个问题,open3.aspx的图片验证码产生的session覆盖了open1.aspx和open2.aspx中的session保存的数值;
  4. 那么当你对open1.aspx进行回复时,系统会告诉你验证码错误,重试;
  5. 好,刷新open1.aspx,产生新的图片验证码和session,重新输入验证码,OK;
  6. 但是当你回复open3.aspx时又会提示你错误;
  7. 不厌其烦... ...

解决问题的方法其实很简单,但是也不完美:

  1. 在产生验证码时判断session中是否有值;
  2. 有值就使用原值生成验证码,没有就新生;
  3. 这样的话open1.aspx,open...aspx的图片验证码都是一样
  4. 验证码使用过后就清除调原来的session;
  5. 这样的话当你回复任何第一个页面时都不会报错;
  6. 但是回复第二个页面时就可能出错;
  7. 一个不完美的方法是给session加上计数器,当计数器为某个值时才清掉session,计数器回0;
  8. 未到最大值时所有页面的图片验证码都是一样的,回复一次,计数器减一;
  9. 这样的话使用图片验证码的不单可以防止灌水机,同时也顺畅了访问者的访问。

本文思路来源于:sina图片验证码多次刷新都是一样,显示效果不一样而已;

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值