织梦后台https跳转设置
前台做了 HTTPS 改造,后台还残留 http 访问,会导致登录状态丢失、Cookie 被浏览器拦截、甚至账号密码在传输中被嗅探。后台强制 HTTPS 是站点安全的基本要求。本文说明织梦后台 https 跳转的配置方法及常见登录异常排查。
一、后台不强制 https 的风险
- Cookie 劫持 —— http 传输的 Cookie 明文可被中间人截获,拿到登录态
- 账号泄露 —— 登录POST的账号密码在 http 下明文传输
- 混合内容 —— 前台 https,后台 http,浏览器会拦截后台加载的前台 https 资源
- 登录态丢失 —— https 前台跳 http 后台,Cookie 的 Secure 标志导致不传递
二、第一步:修改后台登录链接
织梦后台默认入口是 /dede/login.php。确保所有入口都走 https:
- 站点后台书签地址改成
https://www.xxx.com/dede/ - 如果后台目录改名(如改成
/admin888/),书签同步更新 - 前台模板里如果有“管理登录”链接,改成 https 开头
但仅改链接不够,用户输入 http 仍能访问后台,必须强制跳转。
三、第二步:Web 服务器强制后台 https 跳转
nginx 配置
# 后台目录强制 https
server {
listen 80;
server_name www.xxx.com;
# 后台目录跳转
location /dede/ {
return 301 https://$host$request_uri;
}
# 其他正常处理
location / {
# ... 原配置
}
}
如果后台目录改名,把 /dede/ 换成实际目录名。
apache 配置(.htaccess)
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} ^/dede/ [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
放在站点根目录的 .htaccess 里,只对后台目录生效,不影响前台。
四、第三步:后台 Cookie 加 Secure 标志
Cookie 加 Secure 标志后,只在 https 下传输,http 下不发送,防止泄露。织梦 Cookie 设置在 /include/common.inc.php:
// 找到 session_start 附近,加 session cookie 参数
session_set_cookie_params([
'lifetime'=> 0,
'path'=> '/',
'secure'=> true, // 只在 https 传输
'httponly'=> true, // JS 不可读,防 XSS
'samesite'=> 'Lax' // 防 CSRF
]);
session_start();
五、第四步:后台目录改名加固
默认 /dede/ 目录太容易被猜到,建议改名:
- FTP 或服务器把
/dede/目录重命名为随机字符串,如/admin7x9k/ - 修改
/data/config.cache.inc.php里的$cfg_admin_dir为新目录名 - 清理
/data/cache/缓存文件 - 用新地址访问后台
改名后扫描器批量扫描 /dede/ 就找不到入口,配合 https 跳转,安全性大幅提升。
六、第五步:HSTS 防止降级
在 nginx 后台 server 块加 HSTS 头:
server {
listen 443 ssl;
server_name www.xxx.com;
# 全站 HSTS
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
location /dede/ {
# 后台配置
}
}
HSTS 让浏览器记住一年内只走 https,即使误输入 http 也会本地强制跳 https,不经过服务器,防中间人降级。
七、第六步:修改后台安全参数
后台 → 系统 → 系统基本参数 → 核心设置:
- “DedeCMS 安装目录”确认正确
- “后台登录是否开启验证码”建议开启
- “后台登录失败次数限制”设为 5 次
后台 → 系统 → 验证安全设置:
- 开启“后台登录验证码”
- 开启“管理员登录邮件通知”
- 设置“后台允许登录的 IP 段”(如固定办公 IP)
八、常见登录异常排查
1. https 后后台登录不上
原因多是 Cookie 的 Secure 标志开了,但后台某处还走 http。检查:
- 访问地址是否确实是 https 开头
- 是否有 http 的 iframe 嵌入后台
- 301 重定向是否正确跳转
- 清除浏览器 Cookie 重新登录
2. 登录后立即退出
典型是 Cookie 域名不匹配。检查 common.inc.php 里 session.cookie_domain 是否设置了正确域名:
ini_set('session.cookie_domain', '.xxx.com'); // 前面带点表示泛域名
3. 验证码不显示
https 后验证码图片走 http 加载被拦截。检查 /dede/ 下的验证码生成文件 login_captcha.php 是否被 https 正常访问。
4. 后台样式错乱
后台 CSS/JS 走 http 被拦截。检查后台模板(/dede/templets/)里资源引用是否用了相对路径或协议相对路径 //。
九、注意事项
- 改后台目录名后,所有管理员的书签都要更新
- 定时备份的脚本里如果写死了
/dede/路径要同步改 - CDN 缓存如果包含后台目录,要排除
/dede/不缓存 - 后台 https 后,宝塔等面板的“站点 SSL”要覆盖后台域名
- 会员中心
/member/也建议同样做 https 强制
后台是站点最高权限入口,https + 目录改名 + Cookie 加固三件套是安全基线。配置完成后用未登录状态访问 http 后台地址,确认会 301 跳转到 https,再用 https 正常登录验证功能完整。定期查看后台登录日志,发现异常 IP 及时封禁。