很多同学出于安全考虑,防止别人看到自己的网站后台,以及防止在登陆后台尝试登陆账号,暴力破解后台密码。所以想会后台路径换一下。
不过,官方说,不需要换,无需担心安全问题,系统很安全。
这就好比广场上配置有凉衣架,社区管理员让你把你的82年的裤衩,拿到广场上凉,你说我想凉自己阳台就好了。管理员说没关系,广场很安全不会丢的。
二人说的都没毛病,但是又总觉得哪儿不对。
那么,yzmcms的管理后台路径能改吗?
答案:不能
好了,这篇文章结束了吗。
然而并不是,老夫这有一计,可以解决admin暴露的问题。
其实,不是不能改后台路径,而是太麻烦了,模板中的后台链接全部用的admin,如果改模板名,那么模板这么多文件,你要一个个改个遍,如果程序升级,怎么办?再来一遍吗!太费事了
虽然不能改后台路径,但是,我们可以通过程序限制/admin/的访问权限。当游客访问admin模块时,自动提示模块不存在。100%防真模拟官方的提示效果。即:module does not exist : admin
对游客隐藏admin模块的原理:
当游客访问后台时,如果不带上key访问,那么就会提示模块不存在,如果管理员访问后台时,带上正确的key访问,则即可正常显示模块。
操作方法:
1、打开文件 \application\admin\controller\common.class.php
2、找到大概第20行的判断用户是否已经登录部分,将 final private function check_admin()函数加3行,如下图画红框的部分:
添加后的完整的函数代码如下:
final private function check_admin() {
$key=empty($_GET['key'])?'':$_GET['key'];
if(ROUTE_M =='admin' && ROUTE_C =='index' && ROUTE_A =='login') {
if($key<>'kkno') application::halt("module does not exist : admin", 404);
return true;
} else {
$adminid = intval(get_cookie('adminid'));
if(!isset($_SESSION['adminid']) || !isset($_SESSION['roleid']) || !$_SESSION['adminid'] || !$_SESSION['roleid'] || $adminid != $_SESSION['adminid']) {
if($key<>'kkno') application::halt("module does not exist : admin", 404);
echo '<script type="text/javascript"> var url="'.U('admin/index/login').'"; if(top.location !== self.location){ top.location=url; }else{ window.location.href=url; } </script>';
exit();
}
self::check_referer();
}
}
以后,你访问后台,即可通过 /admin/index/login.html?key=kkno 来登陆,即可,正常的路径后台加上?key=kkno。
你也可以在函数中,将kkno改成自己能记住的字符。
再也不用担心管理后台能让任意人可以访问了!