zoukankan      html  css  js  c++  java
  • paip.提升安全性生成一个安全的验证码

    paip.提升安全性-------生成一个安全的验证码

    目前,许多网站已经有了验证码,但是许多验证码仅仅是简单的生成,一些简单的干扰点,或者一些简单的背景。。。这些验证码可以说对于注册机来说无任何意义,可以程序很容易识别

    你需要对照以下标准检查你的验证码强度:

    1.仅仅是一张简单的图片,PASS。
    2.加了一些一些简单的干扰点,基本无用
    3.一些简单的背景,也是基本无用
    4.一些简单的线条,基本无用
    5.文字没有变形扭曲
    6.文字没有旋转方向
    7.只有4个字母
    8.只有一行..
    9.验证码图片不是实时生成的,而是用有限的图片,很容易被人把库拉下来。。
    10.图片文字与文字是分离的,没有粘连在一起..
    11.从来没用验证码识别程序验证过强度
     

    以上10个都是低强度验证码的特点,网站上用了这样的验证码,可以说相当于没用..就算是GOOGLE等比较难识别的验证码,也会被deathbycaptcha等人工打码的项目轻易识别...

    还有一些验证码是比如3*8=? 这一类型的,这一类的如果答案在三个数及以下,可以说也是基本无太大用
    还有一些是用汉字验证码,如果加以技术处理,让机器无法识别,也确实可以让deathbycaptcha等人工打码无法识别(只能识别英文数字),但是用户体验就差了。特别是用户当中有不识汉字的人..不太适合普遍情况。。

    我们的目标是机器无法识别,deathbycaptcha等人工打码也无法识别...


    1.使用手机来获取验证码,这样可以彻底避免上述问题..如果不可,用以下的方法
    2.图片要有变形,如果可能用手写体,然后扫描上传切割。。显示拼接时需要再次变形
    3.图片要实时生成,绝对不可以用库
    4.文字要旋转方向
    5.验证码提高到6位
    6.文字要粘连在一起
    7.增大干扰点与线条
    8.使用复杂背景
    9.使用框架文字,文字是一个框架形式,中间镂空
    10.使用图案拼接文字,如用几个不同水果接成一个字母
    11.验证码要保存在SESSION中,不要使用未加密COOKIE
    12.显示图片时使用FLASH显示,防止被复制,通过HTTP传输图片时要加密
    13。使用一款验证码识别工具进行检测,要将识别率降到1%以下..

    经过以上处理,基本上可以对付程序识别了,但是仍然可以被deathbycaptcha等人工打码识别..接下来就要让人工打码也无法识别..仔细研究deathbycaptcha的缺点..发现汉字是无法识别,但是这个因为用户体验问题,只能使用英文和数字..

    a.生成一付图片,上下左右各一个6位数验证码..
    b.一个特殊FLASH指明用户输入上下左右其中一个验证码..此FLASH也要做防破解工作
    c.输入验证码的控件使用FLASH做个安全加密输入框,其中内容加密..

    这样,可以防止被deathbycaptcha等人工打码识别..因为图片与指示相分离了。只有网站用户可以看到指示。。。

  • 相关阅读:
    js中的replace 回车符
    HttpHandler 读取Session
    [原]vs2005 修改新增文件时的默认编码方式
    系统托盘NotifyIcon控件及右键菜单功能
    addAttribute
    gpibCmd
    deviceFactory
    string is
    TitledMotorEntry TitledFrame MotorViewEntry TitleMotorEntry
    IOC port
  • 原文地址:https://www.cnblogs.com/attilax/p/15199862.html
Copyright © 2011-2022 走看看