说说 Discuz! 网站安全 #1

本文由 Coxxs 原创,转载请注明原文链接:https://dev.moe/582

十年前,PC 还是主流,BBS 占据了中国互联网很大一部分。Dvbbs、phpwind 和 Discuz! 三分论坛程序市场。

十年后,移动设备成为了大多数人主要的联网方式,QQ、微信、微博成为了大多数人的日常。昔日繁荣的论坛,有的努力转型,争取移动用户;有的则是随着时代的发展,逐渐没落。

不少逐渐没落的论坛,并没有被站长完全放弃。站长依然努力保持着最低限度的维护,许多会员依然会时不时想起这个论坛,上去发几篇帖子。论坛里大量用户产生的内容,也成为了互联网历史中的宝贵财富。但恐怕,这样的场面,并不能持续太久。

Tom Scott 的一段演讲令我印象深刻:

许多用了多年的网络留言版,一旦管理员的密码(或论坛程序本身)被黑客攻破,就基本等同于网站的永久关闭。因为大多数小网站根本没有备份,能在受攻击后恢复的网站并不多。

安全提示

虽然我不是安全从业人员,但是几年站长做下来,依然积累了一些相关经验,希望对其他站长有所帮助。

1. 任何网站都可能被攻击

标题看上去像是一句废话 = =||,但确实有不少站长觉得,他们的网站不值钱,没什么重要数据,黑客不会去攻击。可是黑客一般不这么想。他们手上有公开的,或者在私下传播的扫描器,可以批量对网站进行“安全检查”,并且自动化入侵。可能他们都不需要知道目标网站是什么,只需要写好扫描器,按一下回车,目标网站就开始帮他们开“澳门··”了。

这些并非广告机发的帖子,而是网站程序被篡改了

然后,网站对应的域名通常会被国内安全公司列为“危险网站”,甚至吊销备案。

2. 保持定期、异地的备份习惯

这是确保网站能够长期运行的底线。定期备份可以确保网站遭受灾难事件时,能够恢复到近期(而不是 n 年前)的状态;异地备份可以确保灾难事件发生时,备份数据不会同时丢失。

对于 Discuz! 的备份,主要包含网站文件(附件、用户头像等)和数据库。可以写一个脚本来实现定期备份。

如果有条件,建议还要定期检查备份文件是否正确、完整,并最好有至少一份物理隔离的备份。

3. 保持网站系统最新

就 Discuz! X 而言,官方很少会披露新版本到底修了什么问题,站长可能也觉得更新麻烦,没遇到问题就不更新了。但是安全从业人士可以很快通过代码比对,分析出每个版本更新具体修复的安全漏洞,黑客也可以快速利用漏洞进行批量入侵。

举个例子,如果网站还在使用 Discuz! X3.3 之前的版本,网站文件可以被黑客任意删除,立即造成宕机。

所以,别拖了。现在,立刻,更新。

4. 设置正确的文件权限

一种常用的入侵手法是先上传一个 webshell 文件,通过访问这个文件对整个服务器进行控制。我们可以对用户上传的目录设置禁止执行、对网站程序本身的目录设置禁止写入。

对于 Discuz! X 论坛:

  1. 除 /data/、/uc_server/data/ 目录外,其他目录及文件均设为禁止写入。
  2. 对于 /data/、/uc_server/data/ 目录,禁止访问 .php 等脚本文件。

以上第 1 点可通过文件系统设置权限(如 chown、chmod),第 2 点可在网站服务器(如 nginx)中配置。

5. 加强有权限的人员的密码安全

大多数站长都很重视自己的密码安全。毕竟,自己的密码一旦泄露了,危险性显而易见。但是不少站长会忽视其他有权限的人员(如版主、副管理)的密码安全。许多入侵也是从这些人员的帐号开始的。

除了口头提醒他们外,对于 Discuz! X ,后台也提供了密码强度相关的设置,可以简单地防止部分弱密码。

6. 尽快转换到 https

如果你的网站还在使用 http,请尽快转换到 https。除了避免 ISP 插广告,也可以避免敏感信息(如密码)被截获。

值得一提的是,Discuz! 自带的“密码加密后传输”是没有太大意义的:

  1. 中间人可以直接截取 Cookies,获取帐号权限
  2. 中间人可以利用截获的 MD5,直接重放用于登录。
  3. MD5 较弱,依然容易被破解出原密码。
  4. 中间人可以劫持并去掉加密步骤,让密码重新以明文传输。

如果要保证安全,https 可以说是唯一选择。


事实上,以上六条对于所有网站都适用。在下一篇文章中,我们会针对 Discuz! X 已公开的漏洞报告,做一些额外的漏洞修复。

Coxxs

说说 Discuz! 网站安全 #1》有5个想法

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注