织梦检测是否修改了默认管理员用户名和密码函数TestAdminPWD()

admin2020-01-291086

这个函数的功能对于一个系统来说非常重要,试想如果我们下载了一个系统结果一直没有改这个系统默认的管理员用户名和密码是非常危险的,一般使用系统的站长很可能不太懂程序,所以,当我们开发了一个系统或做了织梦二次开发一个小系统,最友好的用户体验之一就是提示用户是不是修改了系统的用户名和密码。

织梦系统也是如此,当我们安装完一个系统后,若你没有修改用户名和密码系统就会提示你去修复,如下图所示。

本教程函数的功能就是检测用户安装完系统后,有没有修复默认的管理员用户名和密码,其实原理很简单,就是:根据默认管理员名查询出用户出来用户名和密码,若查询出结果,则至少说明用户名是默认的,要不也查询不出内容来,然后,把默认密码通过md5加密后跟查询出来的默认密码进行对比,若成功,则说明密码也没有改,这原理就这么简单。

函数所在文件:   dede/inex_testnv.php

函数返回值:-1:没有更改默认管理员名称  -2:没有更改默认管理员用户名和密码 0:没有发现默认账号

源代码:

if(!function_exists('TestAdminPWD'))
{
    function TestAdminPWD() 
    {
        global $dsql;
        
        $sql = "SELECT usertype,userid,pwd FROM #@__admin WHERE `userid`='admin'";
        $row = $dsql->GetOne($sql);
        if(is_array($row))
        {
            if($row['pwd'] == 'f297a57a5a743894a0e4')
            {
                return -2;
            } else {
                return -1;
            }
        } else {
            return 0;
        }
    }
}

这个函数的代码实在是太简单了,不用多解释一看就明白,通过查询管理员表#@__admin里面的用户名和密码来判断是否已经修复了默认的用户名和密码,其中f297a57a5a743894a0e4是admin通过md5加密后的值。

延伸思考:

假如有一天你忘记密码怎么办? 其中一种方法就是把表#@__amdin里面的字段pwd的值,置为f297a57a5a743894a0e4,如下图所示。

114857vj4s7p2052jh725h.jpg

这样就可以登录后台了。

网友评论