可见,在底层既有 key 的拼接,又有 value 的拼接,如果没有做好过滤,很容易产生 sql 注入,尤其是很多开发者为了扩建功能,提供一些新的支持,也会导致各种各样的问题,
虽然这个底层用了预编译,...,然后替换模板进行插入,我们跟进 parseData 方法
foreach ($data as $key => $val) { } elseif (is_array($val) &...exp 后面加一个空格,所以这里匹配不到
但这里的 inc, 全局没有过滤,而又直接拼接了 $val[1] 和 $val[2] 导致注入漏洞的产生,
这个地方在 5.1.6未过滤 key,然后拼接到 buildwhere 语句的字段名导致注入
0X04 缓存
interface CacheInterface{ public function buildKey...,并且传入数据,最后返回 html 结果.
php 模板的实现方式一般为,将模板中的 {{name}} 替换为对应的 php 代码,如
<?