开源系统的后台入口都是统一的,安全起见,我要把它改成独一无二的。我这里的程序版本是官方的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
header('location:index.php?m=admin');
?>
改为:
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