phpcms修改默认后台登录地址
[ 2016/01/15, Phpcms , 6275阅, 0评 ]

开源系统的后台入口都是统一的,安全起见,我要把它改成独一无二的。我这里的程序版本是官方的phpcms_v9.6.0_UTF8。

1./phpcms/modules/admin/classes/admin.class.php中

在final public function check_admin()函数中开始部分添加以下代码:

if(!in_array(ROUTE_A, array('login', 'public_card'))&&(!isset($_SESSION['userid']) || !isset($_SESSION['roleid']) || !$_SESSION['userid'] || !$_SESSION['roleid'])){
    //01.直接提示错误403
    //Header("http/1.1 403 Forbidden");
    //exit('No permission resources.');
    //02.直接跳转到前台首页
    //header('location:index.php');
    //03.提示错误信息后再跳转到首页
    showmessage("哈,想进后台?没门!",'?m=content');
}

2./admin.php

<?php
header('location:index.php?m=admin');
?>
改为:
<?php
header('location:index.php?m=admin&c=index&a=login');
?>

然后再把admin.php换个名字,例如admin123.php;亦或者新建一个admin456文件夹,把admin.php改为index.php放进去,那么现在能访问到后台的地址就只有:

http://域名/index.php?m=admin&c=index&a=login
http://域名/admin123.php
http://域名/admin456
http://域名/admin456/index.php

但是用phpcms的人都知道index.php?m=admin&c=index&a=login这个入口,所以有必要把这个login换掉,下面我们就来换这个login。

3.首先把1和2中的两个login换掉,我们以换成newlogin123为例

4.还是/phpcms/modules/admin/classes/admin.class.php中

final public function check_admin()函数中

if(ROUTE_M =='admin' && ROUTE_C =='index' && in_array(ROUTE_A, array('login', 'public_card'))) {
    return true;
} else {
    $userid = param::get_cookie('userid');
    if(!isset($_SESSION['userid']) || !isset($_SESSION['roleid']) || !$_SESSION['userid'] || !$_SESSION['roleid'] || $userid != $_SESSION['userid']) showmessage(L('admin_login'),'?m=admin&c=index&a=login');
}
改为:
if(ROUTE_M =='admin' && ROUTE_C =='index' && in_array(ROUTE_A, array('newlogin123', 'public_card'))) {
    return true;
} else {
    $userid = param::get_cookie('userid');
    if(!isset($_SESSION['userid']) || !isset($_SESSION['roleid']) || !$_SESSION['userid'] || !$_SESSION['roleid'] || $userid != $_SESSION['userid']) showmessage(L('admin_login'),'?m=admin&c=index&a=newlogin123');
}

final public function check_priv()函数中

if(ROUTE_M =='admin' && ROUTE_C =='index' && in_array(ROUTE_A, array('login', 'init', 'public_card'))) return true;
改为
if(ROUTE_M =='admin' && ROUTE_C =='index' && in_array(ROUTE_A, array('newlogin123', 'init', 'public_card'))) return true;

5./phpcms/modules/admin/index.php中

public function login()改为public function newlogin123()

6.查找“a=login”替换为“a=newlogin123”

\phpcms\modules\admin\index.php
\phpcms\modules\admin\classes\admin.class.php
\phpcms\modules\admin\classes\sites.class.php
\phpcms\modules\admin\templates\header.tpl.php
\phpcms\modules\admin\templates\login.tpl.php

7.经过上面的一番修改之后那么现在的真实登录地址就变成了index.php?m=admin&c=index&a=newlogin123

有朋自远方来...评论一下呗O(∩_∩)O