科大博客修复无法安装插件、主题等问题

2016年9月,我们遇到了两次利用插件漏洞的恶意代码上传事件,一次是被挂黑页、被网监查了水表,一次是滥发垃圾邮件用完了 LUG 的邮件配额。第二次恶意代码上传事件后,我们修改 PHP 解释器代码,禁止了 .php 扩展名文件的写入和非 .php 扩展名文件的执行。这个限制的后果是无法安装或升级插件、主题。非常抱歉此问题给您带来的麻烦。

现在修改了 PHP 解释器中的文件访问限制,使得通过 WordPress 后台正常的上传、更新、编辑插件和主题不会受到影响。禁止插件和主题自己修改代码,也就是利用插件漏洞的恶意代码上传将不能得逞(当然部分生成 PHP 模板的插件可能无法使用)。

具体文件访问限制策略如下:

  1. 非 .php 扩展名的文件禁止执行(与之前相同)
  2. WordPress 用户上传目录内的文件禁止执行(上传目录相对路径可在 php.ini 里配置,用户不能修改)
  3. .php 扩展名的文件,只有受信目录内的代码才能写入(受信目录列表可在 php.ini 里配置,用户不能修改)。具体方法是判断 php 调用栈上的每个文件是否都在受信目录内,只要有一个不在就报错。目前受信目录是用户间共享、用户不可修改的 WordPress 核心代码。

此外,之前 blog 注册激活后需要升级数据库。这是因为之前安装 blog 的过程是直接导入一个数据库模板,WordPress 4.6.1 检测到数据库表结构的变化,就提示需要升级。现在修改了安装过程,直接调用 WordPress 的数据库安装函数,装好的 blog 就是最新版本的数据库结构。与 WordPress 原版安装程序略有不同,您将不会收到 WordPress 自动发送的安装成功邮件,因为其中包含明文密码,我们把这个发邮件的过程去掉了。

如果您注册新博客后发现问题,或发现插件、主题无法安装、升级,欢迎报 bug。感谢您对科大博客的支持。

Mirrors 部分服务中断说明

近日,Mirrors 由于增加了 Bcache 缓存,导致服务器负载出现不明异常,进而影响多项服务。
在排查原因的同时,我们会优先保证 HTTP/HTTPS 服务,但无法保证 Rsync, Git 等服务的可靠性。

在此期间,用户可以选择 Tsinghua Mirrors 作为替代。

给您造成不便,请谅解。

UPDATE 2016-11-14
目前外部磁盘阵列有一块盘损坏,Raid 控制器正在 Rebuild。Rebuild 时间较长,且影响性能。

UPDATE 2016-11-14 18:19:18
卸载了正在rebuild的阵列,该阵列上的软件源的HTTP/HTTPS请求会被重定向到其他站点。

UPDATE 2016-11-16 11:00:00
Mirrors 早上失联,已将域名解析到备份站点,所有访问将被重定向到其他镜像站,
重定向规则见 https://git.ustclug.org/mirrors/mirrors-backup/blob/master/redirect.lua

只有 HTTP/HTTPS 会被重定向,Rsync, Git 暂停服务。

UPDATE 2016-11-21 14:13:51

去掉bcache后仍然出现了好几次宕机,但仍然没有定位到原因。而且没有了缓存机制镜像站的负载居高不下(60~70),近两天还发现内部阵列(raid5)有两块服役56328小时的硬盘smart信息很不乐观(Raw_Read_Error_Rate已经高达98884520和235269563)。近期镜像站极其不稳定,不论是硬件软件都频出问题,非常抱歉给大家带来诸多不便。我们会尽快排查问题并提供更稳定的服务。

此外,我们已经联系学校的网络中心老师,筹备买新机器的事宜,但不确定什么时间能上线。最后,欢迎提供帮助(联系我们or捐赠)