php怎么部署线上论坛_用discuz要开哪些安全模块防攻击【说明】

2次阅读

Discuz! 部署前必须关闭默认危险配置:删除 install/ 目录,设 config_global.php 为 644、data/ 为 755,禁用 allow_url_fopen/include,启用登录限制、防采集、新用户发帖审核,禁用高危 PHP 函数,nginx 禁止访问敏感路径。

php怎么部署线上论坛_用discuz要开哪些安全模块防攻击【说明】

Discuz! 部署前必须关闭的默认危险配置

Discuz! 安装包自带的 install/ 目录、data/config/config_global.php 可写权限、以及 source/install/ 等残留安装文件,是线上环境最常被利用的入口。上线前不清理,等于给攻击者留了后门。

  • 删掉整个 install/ 目录(不是改名,不是 .htaccess 禁止访问)
  • data/config/ 目录权限设为 755config_global.php 设为 644(确保 Web 进程不可写)
  • 检查 uc_server/data/config.inc.php 是否也设为只读;UCenter 配置泄露会直接导致全站用户凭据失控
  • 禁用 PHP 的 allow_url_fopenallow_url_include(Discuz! 旧版存在远程文件包含利用链)

必须启用的 Discuz! 内置安全模块

Discuz! X3.5+ 提供了可勾选的安全开关,但默认不全开。光靠 WAF 或 Nginx 规则不够,核心防御得落在应用层。

  • 后台 → 全局 → 安全设置 → 启用「登录失败次数限制」和「IP 锁定时间」,防止暴力爆破 admin.php
  • 开启「防采集」:勾选「禁止未授权的外部脚本调用接口」,能阻断大量自动化灌水机器人
  • 「论坛相关」→「发帖相关」中,把「新用户发帖审核」设为「是」,并配合「用户组» 新注册用户» 发帖数限制=0」,避免注册机秒发广告帖
  • 关闭「允许游客浏览」(除非业务强需求),游客无 session 绑定,极易被用于 csrfxss 传播

PHP 运行时必须加固的底层参数

Discuz! 是基于 PHP 的老架构,很多安全问题出在 PHP 配置松散,而非程序本身。尤其注意 open_basedirdisable_functions 的实际生效情况。

  • php.ini 中强制禁用高危函数:disable_functions = system,exec,passthru,shell_exec,proc_open,popen,pcntl_exec
  • 设置 open_basedir 严格限定到网站根目录,例如:/www/wwwroot/bbs.example.com/:/tmp/(注意末尾冒号和 /tmp/ 必须显式加入,否则附件上传失败)
  • expose_php = Off(隐藏 PHP 版本号,减少指纹暴露)
  • 若用 PHP-FPM,确保 security.limit_extensions = .php,防止上传 .php.jpg 绕过解析

Nginx / apache 必加的请求层防护规则

Discuz! 的 URL 路由和静态资源路径固定,用 Web 服务器规则拦截异常请求,比等 PHP 解析后再过滤更高效、更早止损。

立即学习PHP免费学习笔记(深入)”;

  • Nginx 下禁止直接访问敏感路径:
    location ~ ^/(config|data|uc_server/data|source|install) { deny all; }
  • 拦截常见攻击特征:location ~ .(php.jpg|php.png|phtml|php3|php4|php5|php6|php7|php8|phar|phps)$ { return 403; }
  • 限制 forum.phphome.php 的 GET 参数长度(Discuz! 常见 sql 注入点在 modop 参数):if ($args ~ "(unions+select|sleep()") { return 403; }(仅作辅助,不能替代参数绑定)
  • Apache 用户请确认 .htaccess 已启用,并在根目录部署 Discuz! 自带的 .htaccess(含重写和基础防护)

Discuz! 的安全水位,不取决于你开了多少“高级功能”,而在于是否真正关掉了那些默认开着的、文档里没强调但攻击者天天扫的缝隙。尤其是 uc_server 配置文件权限、data/ 目录写入控制、以及 PHP 的 disable_functions 是否真实生效——这三处漏掉任意一个,其他所有配置都可能形同虚设。

text=ZqhQzanResources