12下一页
返回列表 发帖
查看: 5720|回复: 11

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

83

主题

2795

回帖

3564

积分

功行圆满

贡献
22 点
金币
351 个
发表于 2021-4-7 05:00:01 | 显示全部楼层 |阅读模式


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

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

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

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


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

都是修改 admin.php文件

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

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

  1. if(!$_G['uid']){
  2.     header('HTTP/1.1 404 Not Found');
  3.     header("status: 404 Not Found");
  4.     echo '404 Not Found';
  5.     exit;
  6. }
复制代码


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

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


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

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


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

评分

参与人数 2贡献 +1 金币 +11 人气 +1 收起 理由
志愿者 + 1 + 1 很给力!
dashen + 1 + 10 很给力!

查看全部评分

回复

使用道具 举报

1

主题

22

回帖

207

积分

炉火纯青

贡献
0 点
金币
134 个
发表于 2021-4-7 18:52:17 | 显示全部楼层
谢谢分享,用上了。
回复 支持 反对

使用道具 举报

24

主题

58

回帖

104

积分

渐入佳境

贡献
1 点
金币
12 个
发表于 2021-4-8 20:01:50 | 显示全部楼层
谢谢分享
回复

使用道具 举报

26

主题

119

回帖

162

积分

渐入佳境

贡献
0 点
金币
5 个
发表于 2021-4-8 21:13:24 | 显示全部楼层
感谢分享,已经修改了。
美食美景旅游攻略-https://www.jiaxiangmei.top
学习帮-https://www.9axl.com
回复 支持 反对

使用道具 举报

1

主题

11

回帖

27

积分

初学乍练

贡献
0 点
金币
13 个
发表于 2021-4-10 15:00:34 | 显示全部楼层
奇怪,使用第 3 種方法,UID 1 進入後台還是報 404
回复 支持 反对

使用道具 举报

83

主题

2795

回帖

3564

积分

功行圆满

贡献
22 点
金币
351 个
 楼主| 发表于 2021-4-10 17:06:44 | 显示全部楼层
Punkhippie 发表于 2021-4-10 06:00
奇怪,使用第 3 種方法,UID 1 進入後台還是報 404

没理由,检查一下各有权限进后台的 UID 才使用吧!
回复 支持 反对

使用道具 举报

56

主题

1446

回帖

3万

积分

管理员

贡献
2072 点
金币
1382 个
发表于 2021-4-11 14:27:42 | 显示全部楼层
Punkhippie 发表于 2021-4-10 15:00
奇怪,使用第 3 種方法,UID 1 進入後台還是報 404

代码要放在 $discuz->init(); 的下边,你可能放上边了
回复 支持 反对

使用道具 举报

10

主题

38

回帖

96

积分

渐入佳境

贡献
1 点
金币
30 个
发表于 2021-4-21 16:18:13 | 显示全部楼层
本帖最后由 tkywr 于 2021-4-21 16:23 编辑
dashen 发表于 2021-4-11 14:27
代码要放在 $discuz->init(); 的下边,你可能放上边了

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


密通学院
回复 支持 反对

使用道具 举报

13

主题

84

回帖

119

积分

渐入佳境

贡献
1 点
金币
1 个
发表于 2022-7-21 18:24: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;
}
回复 支持 反对

使用道具 举报

19

主题

83

回帖

116

积分

渐入佳境

贡献
0 点
金币
6 个
QQ
发表于 2022-8-14 22:55:18 | 显示全部楼层
感谢楼主分享 用上了
仁爱志愿者组织
www.bcvo.org.cn
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 关注公众号
  • 有偿服务微信
  • 有偿服务QQ

手机版|小黑屋|Discuz! 官方交流社区 ( 皖ICP备16010102号 |皖公网安备34010302002376号 )|网站地图|star

GMT+8, 2024-2-24 17:50 , Processed in 0.105728 second(s), 7 queries , Redis On.

Powered by Discuz! W1.0 Licensed

Cpoyright © 2001-2024 Discuz! Team.

关灯 在本版发帖
有偿服务QQ
有偿服务微信
返回顶部
快速回复 返回顶部 返回列表