dedecms如何删除install安装目录
织梦CMS 的 /install/ 目录用于首次安装与重新安装,安装完成后它不再有任何正常用途,却长期暴露在外网。攻击者可访问 /install/index.php 触发重新安装流程,配合已知的安装文件漏洞(如旧版 SQL 导入漏洞)就能直接接管站点。删除或屏蔽 install 目录是织梦安全加固的最基础一步。
一、为什么必须处理 install 目录
- 旧版本 install 目录中存在
install.txt、index.php.bak等历史文件,可能被绕过检测执行安装; - 重新安装会重置
common.inc.php,把数据库连接信息替换为攻击者控制的库; - 部分老版本 install 流程存在 SQL 注入与文件写入漏洞,是常规漏洞扫描的高频命中点;
- 搜索引擎可能收录
/install/页面,泄露站点使用织梦的事实,提高被攻击概率。
二、删除前的确认事项
1. 确认站点已正常运行
确认首页、栏目页、文章页均能正常访问,后台可登录,/data/common.inc.php 中数据库配置已正确写入。
2. 备份站点
虽然 install 目录删除后不影响运行,但建议先打包整站与数据库,便于回滚:
cd /www/wwwroot
tar -czf dede_backup_$(date +%F).tar.gz dede/
mysqldump -u root -p dedecms > dede_db_$(date +%F).sql
3. 检查是否有自定义脚本依赖
排查二次开发是否引用了 install 目录里的文件,常见情况是有人复用 /install/index.php 中的数据库初始化逻辑。
三、删除 install 目录的操作
1. 直接删除(推荐)
cd /www/wwwroot/dede
rm -rf install/
# 验证已删除
ls -l | grep install # 应无输出
2. 改名归档保留
若担心后续升级时需要参考 install 流程,可改名为不可猜测的目录并迁出 web 根:
mv install/ install_archived_$(date +%s)
mv install_archived_* /root/dede_archive/
3. 服务器层兜底拦截
即便目录被误恢复,也要在 Web 服务器层加拦截,作为第二道防线。
Nginx:
location ^~ /install/ {
deny all;
return 404;
}
# 同时拦截 install.php 这种直接访问
location ~* ^/install(\.php)?$ {
deny all;
return 404;
}
Apache .htaccess:
RewriteEngine On
RewriteRule ^install/ - [F,L]
RewriteRule ^install\.php$ - [F,L]
四、删除后的连带处理
1. 清理后台"安装检测"提示
部分版本后台会因 install 目录缺失而报"安全提示",可在 /dede/index_body.php 中注释相关检测逻辑,避免误判。
2. 修改 robots.txt
User-agent: *
Disallow: /dede/
Disallow: /data/
Disallow: /templets/
Disallow: /install/
虽然 robots.txt 不能阻止攻击者,但能避免搜索引擎抓取已下线目录产生死链。
3. 检查升级脚本
织梦升级包通常会带新的 install 目录,升级完成后务必再次确认 install 目录已删除或被服务器拦截。
建议同时把"install 目录是否仍存在"加入每日巡检脚本,一旦被升级包或备份恢复带回,立即告警处理。
五、验证删除效果
- 浏览器直接访问
https://www.example.com/install/,应返回 404 或 403; - 访问
https://www.example.com/install/index.php,应同样不可访问; - 用 curl 模拟 HEAD 请求:
curl -I https://www.example.com/install/,确认状态码非 200; - 在百度站长平台提交死链,避免
/install/被收录。
六、注意事项
- 删除前确认无人正在执行迁移或重装,否则可能中断维护流程;
- 宝塔/1Panel 等面板的"防跨站"开关与 install 目录无直接关系,不能替代删除操作;
- 若使用 CDN,记得在 CDN 控制台也屏蔽
/install/路径,否则回源仍可访问; - 删除后所有"重新初始化"操作改为通过手动执行 SQL 或迁移工具完成,不再依赖 install。
删除 install 目录是织梦加固中成本最低、收益最高的操作之一,建议作为"安装完成后第一件事"。配合 nginx 拦截与每日巡检,可彻底封死通过重装攻击站点的路径。如果你接手的是一套旧织梦站点,第一步就该检查 install 是否仍可访问,这往往比任何补丁都更紧急。