近日我们收到了一个关于3.2版本的漏洞提醒,官方已经第一时间进行处理和更新。由于3.2版本已经过了官方的维护和安全更新周期,而且大量的开发者也进行了二次开发,因此不再发布新版,官方仅进行安全公告和修复建议。请还在使用3.2版本的用户按照下面的方式进行安全修复(只需要修改一处核心内置公共函数代码)。
再次提示:无论是否修改了核心,参考下面的修复方式修复即可,不需要下载任何更新包和补丁包。顺便提醒下,如果你使用的是5.0或者5.1版本,也建议更新到最新版本,官方最近发布了安全更新,直接composer升级到最新版本即可。
找到ThinkPHP目录下的Common/functions.php文件,然后搜索think_filter函数,代码修改为:
if (preg_match('/^(EXP|NEQ|GT|EGT|LT|ELT|OR|XOR|LIKE|NOTLIKE|NOT BETWEEN|NOTBETWEEN|BETWEEN|NOTIN|NOT IN|IN|BIND)$/i', $value)) {
$value .= ' ';
}
然后清空项目的编译缓存文件,修复完毕!