
本防护方案不需要安装第三方插件,所有操作都是修改原生核心文件,零成本落地,你只需要提前准备好:
DedeCMS默认后台路径为根目录下的dede,入侵者会优先扫描这个目录,直接改名就能挡住80%的扫描攻击,操作如下:
dede的文件夹DedeCMS原生支持自定义后台目录,改完名称后不需要额外修改核心配置,后续直接用新路径登录即可。
如果你常用的登录IP是固定的(比如固定办公网络),这个配置可以直接挡住所有非你IP的访问,操作分环境:
Apache环境操作:
进入你刚改名的新后台目录,新建一个名为.htaccess的文件,粘贴以下内容,把示例IP换成你自己的公网IP即可:
如果需要多个IP登录,每加一个IP就新增一行Allow from 对应IP即可。
Nginx环境操作:
打开网站的Nginx配置文件,在server块中加入以下配置,替换成你的后台目录和IP:
``` location ~ ^/你的后台目录名称/ { allow 你的公网IP; deny all; } ```改完保存后重载Nginx配置,执行命令:nginx -s reload即可生效。

就算IP泄露,我们再加一层二次验证,入侵者就算拿到账号密码也进不来,操作如下:
1.打开新后台目录下的login.php文件,找到大约第30行的这行代码:
在这行代码之前,插入以下验证代码,把示例口令换成你自己的二次验证口令:
``` // 自定义二次登录验证 if($_POST['second_verify'] != 'myverify821'){ showmsg('登录验证不通过', '-1'); exit; } ```2.打开同目录下的login.htm文件,找到提交按钮代码,在这行代码之前插入以下代码:
保存两个文件,二次验证就配置完成。
我们通过Cookie限制同一个IP的错误登录次数,防止攻击者批量跑密码,操作如下:
1.打开login.php,找到这行代码(大约在第40行):
在这行之前插入以下代码:
``` // 限制登录错误次数:1小时内最多错5次 $fail_key = 'login_fail_'.$_SERVER['REMOTE_ADDR']; $fail_count = empty($_COOKIE[$fail_key]) ? 0 : intval($_COOKIE[$fail_key]); if($fail_count >= 5){ showmsg('1小时内错误次数过多,请1小时后再尝试', '-1'); exit; } ```2.找到原代码中的登录错误提示行,一般是:
``` showmsg('用户名或密码不正确', 'login.php'); ```把它替换成以下代码:
``` // 记录错误次数 setcookie($fail_key, $fail_count + 1, time() + 3600, '/'); showmsg('用户名或密码不正确,剩余尝试次数:'.(5 - $fail_count - 1), 'login.php'); ```
3.找到登录成功后的Cookie写入行,一般是:
``` $cookies->SetCookie('adminID', $adminID, 0); ```在这行之后插入清除错误计数的代码:
``` // 登录成功清除错误计数 setcookie($fail_key, '', time() - 3600, '/'); ```防止入侵者获取后台目录的文件列表,避免敏感信息泄露:
Apache环境:在后台目录的.htaccess文件最后加一行:
``` Options -Indexes ```Nginx环境:在刚才的IP白名单配置块中加一行:
``` autoindex off; ```全部改完后,按以下步骤验证防护是否生效:
所有验证通过后,整个DedeCMS后台登录防护就配置完成,不会影响网站前端访问和后台日常使用,能有效防范绝大多数扫描和暴力破解入侵。












易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。
Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图