DEDEcms基础设置:修改默认数据库前缀,删除install目录,重命名后台路径,关闭无用功能。权限控制:严格设置目录权限(如data、uploads取消执行权限,include等目录设为只读);服务器防护:更新补丁、限制MySQL权限、启用防CC攻击(后台变量cfg_anquan_cc);精简文件:删除未使用的模块(如member、guestbook)和冗余文件(如SQL执行器),日志监控:定期检查文件修改记录和服务器日志。综合以上措施可显著提升安全性,减少漏洞风险。
核心目录权限设置
目录路径 | 推荐权限 | 详细说明 | 安全建议 |
---|---|---|---|
/ (根目录) | 0755 | 需要执行和读取权限 如需创建文件需写入权限 | 保持最小必要权限 |
/install | 0555 | 安装时需执行和读取权限 | 安装完成后必须删除或改名 |
/dede (后台) | 0755 | 需要执行和读取权限 | 安装后应立即修改目录名称 |
/include | 0755 → 0555 | 安装时需要写入权限 正常运行时只需读取执行 | 安装完成后建议改为只读 |
内容存储目录
目录路径 | 推荐权限 | 详细说明 | 安全建议 |
---|---|---|---|
/data | 0666 | 需要读写权限 | 必须取消执行权限 |
/uploads | 0666 | 需要读写权限 | 必须取消执行权限 |
/html | 0666 | 需要读写权限 | 必须取消执行权限 |
/templets | 0666 | 需要读写权限 | 必须取消执行权限 |
功能模块目录
目录路径 | 推荐权限 | 详细说明 | 安全建议 |
---|---|---|---|
/member | 0555 | 需要执行读取权限 | 建议取消写入权限 |
/plus | 0755 → 0555 | 生成文件时需要写入权限 | 生成后建议改为只读 |
/company | 0555 | 需要执行读取权限 | 建议取消写入权限 |
/special | 0755 | 需要完整权限 | 如不使用建议删除 |
/book | 0755 | 需要完整权限 | 如不使用建议删除 |
/ask | 0555 | 需要执行读取权限 | 建议取消写入权限 |
/group | 0555 | 需要执行读取权限 | 建议取消写入权限 |
权限说明代码对照表
0444 - 只读
0555 - 读取+执行
0666 - 读取+写入
0755 - 读取+写入+执行
最佳实践建议
- 安装后必须操作:立即删除/改名 install 目录修改后台目录名称移除不必要的功能模块
- 权限调整原则:遵循最小权限原则可写目录必须取消执行权限长期不需要写入的目录改为只读
- 定期检查:每月检查目录权限设置审计非常规权限变更检查各目录下的异常文件
- 特殊注意事项:data 目录建议迁移到web根目录外附件目录建议设置独立域名模板文件建议定期备份
通过以上权限设置,可有效降低DedeCMS系统的安全风险,防止大部分基于文件权限的攻击行为。建议配合服务器层面的安全设置共同使用,以达到最佳防护效果。
权限设置方法
一、Linux 服务器权限设置(推荐使用命令 chmod 和 chown)
1. 基本权限规则
- 755(drwxr-xr-x):目录可读、写、执行,其他用户仅可读和执行
- 644(-rw-r--r--):文件可读写,其他用户仅可读
- 600(-rw-------):仅所有者可读写(敏感配置文件)
2. DedeCMS 关键目录权限设置
# 进入网站根目录(如 /var/www/html)
cd /var/www/html
# 1. 设置根目录(允许执行PHP,但限制写入)
chmod 755 ./
# 2. 可写目录(data/uploads等)设为 755 或 775(需写入权限)
chmod -R 755 data/ uploads/ html/ templets/
# 3. 关键目录取消执行权限(防木马)
chmod -R 644 data/*.php # 禁止PHP执行
find data/ -type f -exec chmod 644 {} ; # 所有文件设为只读
# 4. 限制include、member等目录(禁止写入)
chmod -R 555 include/ member/ dede/
# 5. 删除或禁用危险目录
chmod 000 install/ # 禁止访问(或直接删除)
rm -rf install/ special/ company/ # 无用模块删除
# 6. 修改文件所有者(确保Web用户有权限,如www-data或nginx)
chown -R www-data:www-data ./
3. 特殊防护(防跨站攻击)
# 限制PHP在特定目录不可执行
echo "open_basedir = /var/www/html/:/tmp/" >> /etc/php/7.4/fpm/php.ini
systemctl restart php-fpm
二、Windows 服务器权限设置(通过IIS管理器)
- 右键网站根目录 → 属性 → 安全删除不必要的用户(如Everyone)保留 IIS_IUSRS(读取/执行)和 Administrators(完全控制)
- 关键目录设置data/、uploads/:赋予 IIS_IUSRS 写入权限include/、dede/:仅允许 IIS_IUSRS 读取/执行禁用 install/ 目录的所有权限
- 取消脚本执行权限在IIS管理器中选中 data 目录 → 处理程序映射 → 禁用 PHP 或 ASP.NET
三、通用安全建议
- 最小权限原则:只开放必要的权限,如非必要不赋予写入权。
- 定期检查:使用命令 find /var/www/html -type f -perm 777 查找权限过大的文件。
- 日志监控:记录权限变更,防止恶意篡改。
- 备份配置:修改权限前备份网站,避免服务异常。
快速安全检测命令
# 检查网站目录是否有危险权限(777)
find /var/www/html -type d -perm 777 -ls
find /var/www/html -type f -perm 666 -ls
# 检查可疑PHP文件(如webshell)
find /var/www/html -name "*.php" -mtime -7 # 最近7天修改的PHP文件