骑着悟空看八戒 发表于 2025-10-10 23:30:59

Discuz!教程之禁止用户非法直接访问后台的方法!

Discuz!默认的后台路径是 http://你的域名/admin.php

因此很多站长不希望后台直接暴露出来让一些不法用户尝试登陆后台,造成一些安全隐患;

隐藏后台路径一般有两种思路,第一种就是直接修改admin.php文件名称,但是这种方式,前后台要修改的文件比较多,包括所有第三方模版都要修改,而且还会造成有时候安装插件无法再使用问题;新一代黑客木马大都注意到修改admin.php名称的说。

另一种思路,就是对admin.php增加访问权限,这就是本文要讲的方法,具体操作如下:


三种修改方法按需要选择其中一种即可。

都是修改 admin.php文件

A、必须在前台登录了,才能访问后台

在 $discuz->init(); 下方加入代码

if(!$_G['uid']){    header('HTTP/1.1 404 Not Found');    header("status: 404 Not Found");    echo '404 Not Found';    exit;}

B、必须在前台登录了,且uid=1,才能访问后台

在 $discuz->init(); 下方加入代码
if($_G['uid']!=1){    header('HTTP/1.1 404 Not Found');    header("status: 404 Not Found");    echo '404 Not Found';    exit;}

C、必须在前台登录了,且uid在指定范围,才能访问后台

在 $discuz->init(); 下方加入代码
$uids=array(1,2,3,99);if(in_array($_G['uid'],$uids)){    header('HTTP/1.1 404 Not Found');    header("status: 404 Not Found");    echo '404 Not Found';    exit;}

修改完成后,非法直接访问后台的用户就直接报404错误了!

寒哥Gh61ac8 发表于 2025-10-10 23:31:50

谢谢分享,用上了。

huoxianghui913 发表于 2025-10-10 23:32:31

谢谢分享

huoxianghui913 发表于 2025-10-10 23:32:57

感谢分享,已经修改了。

风之影赫 发表于 2025-10-10 23:33:24

奇怪,使用第 3 種方法,UID 1 進入後台還是報 404

huoxianghui913 发表于 2025-10-10 23:33:29

没理由,检查一下各有权限进后台的 UID 才使用吧!

huoxianghui913 发表于 2025-10-10 23:34:09

代码要放在 $discuz->init(); 的下边,你可能放上边了

huoxianghui913 发表于 2025-10-10 23:35:07

确实是,放在下边第三种方法也报错。
不过修改了下第二种方法实现了第三种功能:
if($_G['uid']!=1 && $_G['uid']!=2){    header('HTTP/1.1 404 Not Found');    header("status: 404 Not Found");    echo '404 Not Found';    exit;}

huoxianghui913 发表于 2025-10-10 23:35:29

allthebest 发表于 2021-4-10 17:06
没理由,检查一下各有权限进后台的 UID 才使用吧!
第三種方法是不是邏輯錯了?
應該是not 搞成了有在列表的404

正確的:
$uids=array(1,2,3,99);
if !(in_array($_G['uid'],$uids)){
    header('HTTP/1.1 404 Not Found');
    header("status: 404 Not Found");
    echo '404 Not Found';
    exit;
}

风之影赫 发表于 2025-10-10 23:35:56

感谢楼主分享 用上了
页: [1]
查看完整版本: Discuz!教程之禁止用户非法直接访问后台的方法!