模板带来便利同时带来的安全威胁

比如 thinkphp zend framework ,这两个是代表性的框架,自带的模板系统默认是支持php代码直接嵌入到里面的,还有其他框架估计为了带来更为强大的功能和灵活性也会支持这个。既然是框架了,就要有点条条框框去限制下,不能让代码在视图里随意去执行,也许暂时带来了便利,但是以后的维护会加大成本。可能你会说修改下框架配置,禁用下函数啊什么的,但是默认支持这个东西就必然会造成大部分人不去修改它,想当年的动网论坛默认账号密码、默认数据库地址让多少网站沦陷,后遗症不定时出现!

一、造成目录权限难以控制,模板目录设置成可读可写不可执行,常理的话这里面的php代码不会执行,可是经过模板系统的解析php代码能执行了,现在我们可以直接把代码添加到模板里面,只要模板被解析过就运行了,添加<?php @eval($_GET[‘eval’])?>进去能绝对的顺利执行。你找后门在M层去找吧累死也找不到吧?

二、日常维护网站带来不必要的工作,网站被攻破时候黑客可以把php代码插到html里去,这样的后门对黑客来说是不是很好用呢?

话说smarty3模板做的真专业, 最新版本已经完全禁止了在模板中嵌入php代码。smarty是个不错的东西,人家就是做的好啊!

发表评论

电子邮件地址不会被公开。 必填项已用*标注