阿喆的博客空间 > 技术分享 > 织梦程序 >

织梦密码规则修改

 作者:阿喆 时间:2017-08-08

    织梦程序作为流传最广的网站建站程序,密码规则早已经不是什么秘密,为安全而言,最好将规则改变,防止别人暴力破解。

    首先,给大家介绍下织梦原本的密码规则。

    会员密码规则,对密码直接进行32位MD5加密,然后存到数据库,如果被截取到加密后的字符串,通过md5反向编译可以获得这个密码。

    管理员密码规则,先上源代码$pwd = substr(md5($pwd), 5, 20);对于密码进行MD5加密,然后截取5到20位字符,存到数据库。比较有规则的是将这个字符截取掉前3位和最后1位字符,然后将这个16位字符MD5反向编译,可以得出这个密码。例如将密码设置为admin,将这个密码对应的字符从数据库中取出(f297a57a5a743894a0e4),去掉前3位和最后1位(7a57a5a743894a0e),将其md5反向编译,得出的结果是admin。

    所以呢,对于这个规则需要改变下,增强我们的安全性。修改前请备份文件。注:xxx修改为想要加的字符。 

    打开dede目录下,sys_admin_user_add.php,sys_admin_user_add.php,将sys_admin_user_add.php、$pwd = substr(md5($pwd), 5, 20)修改为$mpwd = md5($pwd."XXX");$pwd = substr(md5($pwd."XXX"), 5, 20);

    打开include文件夹下userlogin.class.php,找到247行左右将$pwd = substr(md5($this->userPwd), 5, 20)修改为$pwd = substr(md5($this->userPwd."XXX"), 5, 20)。

    一般为了提升网站安全,建议删除member,如果启用会员,更改密码规则可以做到更安全。

    修改dede目录下member_do.php文件(管理员修改会员密码文件),将$pwdsql = empty($pwd) ? '' : ",pwd='".md5($pwd)."'"修改为$pwdsql = empty($pwd) ? '' : ",pwd='".md5($pwd.'XXX')."'";

    修改dede目录下member_toadmin.php,将$pwdm = ",pwd='".md5($pwd)."'"修改为$pwdm = ",pwd='".md5($pwd.'XXX')."'",这个文件最好删除,是提升会员为管理员的,不安全。

    修改include下memberlogin.class.php文件,将GetEncodePwd函数修改为:

     function GetEncodePwd($pwd)
    {
        global $cfg_mb_pwdtype;
        if(empty($cfg_mb_pwdtype)) $cfg_mb_pwdtype = '32';
        switch($cfg_mb_pwdtype)
        {
            case 'l16':
                return substr(md5($pwd.'XXX'), 0, 16);
            case 'r16':
                return substr(md5($pwd.'XXX'), 16, 16);
            case 'm16':
                return substr(md5($pwd."XXX"), 8, 16);
            default:
                return md5($pwd.'XXX');
        }
    }

    修改member文件夹下reg_new.php下, $pwd = md5($userpwd)改为 $pwd = md5($userpwd."XXX");



下一篇:织梦防sql 注入