thinkphp是国内的一款php框架,也有一大批网站在用这个框架了。
但是总觉得thinkphp团队并没有对其进行严格的测试,在使用过程中问题频出。
最近thinkphp团队推出了基于该框架的cms系统onethink,试用了一下,刚开始在安装的时候就出现了问题。
在linux版本下,onethink在检测文件目录权限时,文件夹没有写权限,却被判为了不存在。
/** * 目录,文件读写检测 * @return array 检测数据 */ function check_dirfile(){ $items = array( array('dir', '可写', 'success', './Uploads/Download'), array('dir', '可写', 'success', './Uploads/Picture'), array('dir', '可写', 'success', './Uploads/Editor'), array('dir', '可写', 'success', './Runtime'), array('dir', '可写', 'success', './Application/User/Conf'), array('file', '可写', 'success', './Application/Common/Conf/config.php'), ); foreach ($items as &$val) { if('dir' == $val[0]){ if(!is_writable(INSTALL_APP_PATH . $val[3])) { if(is_dir($items[1])) { $val[1] = '可读'; $val[2] = 'error'; session('error', true); } else { $val[1] = '不存在'; $val[2] = 'error'; session('error', true); } } } else { if(file_exists(INSTALL_APP_PATH . $val[3])) { if(!is_writable(INSTALL_APP_PATH . $val[3])) { $val[1] = '不可写'; $val[2] = 'error'; session('error', true); } } else { if(!is_writable(dirname(INSTALL_APP_PATH . $val[3]))) { $val[1] = '不存在'; $val[2] = 'error'; session('error', true); } } } } return $items; }
is_dir(INSTALL_APP_PATH . $val[3]) && is_writable(INSTALL_APP_PATH . $val[3])
当然还有很多其它好玩的东西,后期可以展示给大家。
怎么样,是不是有点Damn Vulnerable Linux的味道,试试吧,你会爱上它的。