本帖最后由 民审-M 于 2018-3-29 18:29 编辑
上一篇文章中,我们提到了六个加强网站安全性的通用措施。在本文中,我们会针对性的对 Discuz! X 的一些遗留安全问题进行修复。在阅读本文前,我们假设你已经升级到了最新版的 Discuz! X(撰写本文时最新版本为 Discuz! X3.4 20180204)。 本文提及的所有的修复所对应的漏洞此前都已在互联网上公开。 请依次完成以下安全修复步骤:
1. 重置站点安全密钥如果在你安装 Discuz! 时,使用的版本为 Discuz! X3.4 20180204 或以上的版本,可跳过本步骤。 早期 Discuz! 安装程序产生的安全密钥不够安全,可被 开源,需要重新生成安全密钥。 打开 config/config_global.php,找到: - $_config['security']['authkey'] = 'xxxxxx';
复制代码xxxxxx 是指你的旧密钥。请将旧密钥改为新的密钥。新密钥没有特殊格式要求,建议 生成一个 32 位以上的英文、数字组成的随机字符串。此密钥请注意保密。 再找到: - $_config['cookie']['cookiepre'] = 'xxxx_';
复制代码将其中的 xxxx 改为新的字符串。字符串没有特殊格式要求,输入一个新的 4-5 位左右的英文、数字组成的随机字符串即可(如 ab12)。 完成以上两处修改后,需要进入后台重新设置一下远程附件 FTP 密码及支付宝密钥(如果此前有的话),同时 论坛中所有会员将自动登出。新填入的密钥可有效避免被开源。
2. 加强 UCenter 初始密码安全性安装 Discuz! X 时,会同时安装 UCenter 系统(下称 UC),默认在 /uc_server/ 目录下。黑客获取 UC 权限等同于获取整站权限,且 UC 的初始密码是站长在安装 Discuz! 时设置的密码,如果没有通过以下步骤专门修改过,即使在 Discuz! 中修改过管理员密码,UC 密码也是不会变动的。 如果安装网站时使用了易于开源的弱密码,请登录 UC 后台(默认在 example.com/uc_server/ 下),在下图位置设置一个新密码。
3. 修复 UCenter 密码爆破漏洞UCenter 还存在一处爆破密码的漏洞,已被大量攻击者利用,官方尚未修复该问题。请打开 /uc_server/control/app.php,找到: 在该行下面添加:
后续如果要将新网站接入 UC,可暂时撤销该改动。
4. 防止 IP 伪造Discuz! X 的默认设置允许攻击者任意伪造 IP,进而绕过次数限制爆破会员密码。 打开 config/config_global.php,在文件末尾的 “?>”前添加一行: - $_config['security']['onlyremoteaddr'] = 1;
复制代码即可防止伪造 IP。 如果网站使用了 CDN,进行本修改后,获取到的 IP 将为 CDN 的 IP。这种情况下,nginx 用户可以使用 ngx_http_realip_module,指定 CDN 白名单,由 nginx 对访客 IP 进行还原。 当然,如果网站能够确保用户只有通过 CDN 才能访问到源站,也可以不进行此修改。(注意:如果没有专门做限制,攻击者可以通过各种方式,获取源站 IP 并直接连接)
完成以上步骤后,可以避免目前一部分常见的、针对 Discuz! X 的批量扫描。 安全永远是动态的,在撰文时,还有几个 0day 尚未修复、公开。建议站长参考 上一篇文章中所提到的方案,降低风险。同时在 Discuz! X 发布新版本时,及时完成更新。
本文由 Coxxs 原创,原文链接:https://coxxs.me/604
|