zoukankan      html  css  js  c++  java
  • 网站用Cookie验证的安全方法

     

    cookie验证有他自己的方便优越之处,不能完全摒弃(例如:如果用户量大,优势就是不占服务器资源,持久验证)。某日看程序时发现一比较安全的验证方法,共享之。

    有程序:

    $destoon_auth = get_cookie('auth'); //获取cookie auth
    if($destoon_auth) {
        $_dauth = explode(" ", decrypt($destoon_auth, md5(DT_KEY.$_SERVER['HTTP_USER_AGENT'])) ); //解密cookie
        $_userid = isset($_dauth[0]) ? intval($_dauth[0]) : 0;   //获取解密后的明文cookie
        $_username = isset($_dauth[1]) ? trim($_dauth[1]) : '';
        $_groupid = isset($_dauth[2]) ? intval($_dauth[2]) : 3;
    }

    DT_KEY是安装时随机码(每次安装都不一样,这是最主要的)。

    decrypt和encrypt是自写的加密函数。

    $_SERVER['HTTP_USER_AGENT'] 是用户的浏览器信息。

    无论如何:md5(DT_KEY.$_SERVER['HTTP_USER_AGENT']))   这个别人是无法伪造出来的,用它当密钥解密。


    有着三个方面的保护,可以使:每个网站cookie不一样,每个用户cookie不一样。

    这样获取用户名用cookie+sql验证,别人是利用不了的。

    这个 随机密钥加密cookie 的思路可以借鉴到其他脚本web开发中。

  • 相关阅读:
    2、细节&Class对象
    1、概述&应用场景
    Magento请求分发与控制器
    Magento强大的配置系统
    ecshop在PHP 5.4以上版本各种错误问题处理
    Thinkphp单字母函数使用指南
    五种常见的 PHP 设计模式
    MyISAM和InnoDB的区别
    linux下如何删除文件夹
    Linux软件安装与卸载
  • 原文地址:https://www.cnblogs.com/be-down-to-earth/p/3391144.html
Copyright © 2011-2022 走看看