2014 年 12 月 18 日服务器故障、20 日恢复以来,freeshell 的注册一直处于关闭状态。这是由于本次故障的部分原因与遭受资源耗尽攻击有关,该攻击利用了 blog 注册流程中的一处漏洞:填写任意 E-mail 地址,在收到激活邮件的同时,blog 的数据库和文件已经被创建,只是处于未激活状态。当初如此设计,是为了让用户在点击激活邮件后,可以立即开始使用 blog,而无需等待安装。

Freeshell 的注册流程与 blog 类似,也是注册时先创建好虚拟机,但不启动它,控制面板也不允许操作。这也给利用任意邮件地址滥发注册请求、耗尽资源提供了方便。

修复方法是:在注册时将用户的注册信息和唯一的 id、随机 token 保存在临时表中,并把 id 和 token 包含在用户收到的激活 URL 中。用户点击 URL 后从临时表中取出注册信息,一并完成原来的注册和激活。