码迷,mamicode.com
首页 > Web开发 > 详细

Thinkphp模板开放给第三方编辑权限时,如何禁止模板使用php代码

时间:2017-04-24 19:49:24      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:一件事   func   解析   glib   var   jpg   alt   src   技术分享   

如题,在项目有些项目中,我们需要把模板开放给第三方用户编辑,那么此时模板里面能使用php代码,将会是很重大的安全隐患。

那么如何禁止模板里面使用php代码呢?官方没有给出一个配置项,这是很遗憾的一件事情,没办法,那么我们只能自己修改代码禁止模板使用php了。

 

1、禁止模板使用<?php ?>标签,通过以下配置项完成

‘TMPL_DENY_PHP‘    =>    true,    //禁用原生php

 

2、禁止模板使用<php></php>标签

打开文件:ThinkPHP/Library/Think/Template/TagLib/Cx.class.php

注释大概21行的代码,意思就是注释php的解析标签,这样这个标签就会被原样输出,不会被解析:

技术分享

 

3、禁止模板使用<if> 和 <elseif> 标签

由于if 标签和 elseif 标签里面可以使用函数,所以他们两个同样很危险。需要禁止

打开文件:ThinkPHP/Library/Think/Template/TagLib/Cx.class.php

注释大概24、25行代码:

技术分享

 

4、禁止模板对变量使用函数,例如{:$addtime|date="Y-m-d",###}

像这样的函数用法,虽然方便,但是我们同样要禁止,否则还是存在安全隐患,因为可以把需要执行的函数写在|后面啊。

打开文件:ThinkPHP/Library/Think/Template.class.php

找到 parseVarFunction 函数,大概566行。按照我下面的图片一样注释

技术分享

 

5、未完待续

 

Thinkphp模板开放给第三方编辑权限时,如何禁止模板使用php代码

标签:一件事   func   解析   glib   var   jpg   alt   src   技术分享   

原文地址:http://www.cnblogs.com/phpyangbo/p/6758460.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!