本帖最后由 jiangchuankyo 于 2018-8-17 09:42 编辑
还有网上广泛流传的阿里云工程师给出的memcahce修复代码:
- if(preg_match("(/|#|\+|%).*(/|#|\+|%)e", $_G['setting']['output']['preg']['search']) !== FALSE) {
- die("request error");
- }
复制代码
这句代码不是有3个语法BUG吗:
1, preg_match任何情况下都绝对不可能全等于FALSE,未匹配是直接返回0 的,去掉 if 判断直接写die("request error");效果不是一样的???
2, preg_match缺少边界符/
3, preg_match 使用/e修饰符有什么用
4, 还有preg_match的第二个参数不是应该用字符串吗? 代码中那个$_G['setting']['output']['preg']['search']是个数组啊????
代码到底是怎么回事啊, 这三处BUG明眼人一看就知道啊, 为什么教程都说补丁修复代码是这个, 一楼那个地址回复后修复代码是什么啊
|