2023/12/23,Wikidot 出现了一个致命的漏洞,导致站点名称中含有「scp」且页面名称长度大于 3 的链接均会出现以下错误:
Fatal error: Function name must be a string in /wikidot/app/releases/962533faf5b3667841198082c99c744e579f6796/web/router.php on line 52
原因不明 原因为 Wikidot 服务器在用户未提供 HTTP 来源地址(或称 HTTP referer)的情况下错误地解析了一个空的来源地址。且由于该错误出现在服务器端,我们(包括所有 SCP 站务)并没有办法解决这个问题。这个问题会使得大部分发布在站外(包括 QQ 群、Discord 等)的链接,甚至是书签等失效。该模块通过重定向的方式向 Wikidot 提供了一个来自 github.io 的来源地址,使其可以被正确解析。
但例外总是存在的。该方法并不适用于未开启 SSL 的站点,即只能使用 http 形式作为链接的站点。由于 Wikidot 会在将 https 链接跳转为 http 链接时将来源地址清空,所以在重定向至未开启 SSL 的站点时将使得 Wikidot 获取到空来源地址,继而导致 bug 出现。
由于漏洞已被修复,该模块已无使用场景。但其将将因兼容性原因继续保留。
使用方法:
SCP 链接重定向模块的本体为下面的链接:
https://hoah2333.github.io/Archived-works/SCP/scp-redirecter/main.html
只需要在链接后面加上参数便可重定向至任意页面,格式如下:
本体?参数名1=参数1&参数名2=参数2
可用参数:
在指定参数后,页面将会重定向至以下链接处:
https://site.wikidot.com/name
或在指定 url 后,页面重定向至 url 处。
使用例:
不介意的话,它也可以被用作链接加长模块,比如:
特别地,你可以省略所有参数名,直接在「?」后面写上页面名称:
即使带上「/」也没关系,你可以将论坛链接截断并复制到此处,如
你同样可以使用由 W Asriel 制作的 SCP 链接跳转工具来生成一个重定向链接。
由于此 bug 终有一天会被解决,所以请勿将其用在永久链接中(比如写在文内),或在 bug 被修复后及时修正。本模块完全免费开源,你可以在我的 Github 仓库中查看它的源码。
此处另附一个由 smlt 制作的自动重定向脚本,可以帮助你在遇到此错误之后自动重定向至正确的页面。该脚本需要使用 Tampermonkey 或类似的浏览器插件作为前置。





