最近弄了一个基于宝塔api开发的主机管理系统,使用过程中发现了一个问题!
这是我初始的测试目录结构,防跨站文件有,子目录也有
如果我将运行目录设置为子目录:test,防跨站文件就会到test目录下!
如下图所示,且当前站点根目录下的.user.ini文件会消失
接下来,删除test目录,就会发现防跨站文件已经消失了,并且无法创建防跨站规则!
必须将运行目录设置为根目录,才可重新创建!
若是用户利用子目录绑定功能,将域名绑定到子目录,并且上传了文件管理程序,
那么整个宝塔的文件将都会被此用户所看到且可以修改,后果不堪设想!
虽然解决办法很简单,只需要验证 /site?action=GetDirUserINI接口 dirs里面是否存在 runPath就行了 ,
但是不是很容易发现,我也是刚才用户购买空间发现他防跨站文件消失了,找原因才发现的~
目前若要使用宝塔api开发主机功能的话,子目录绑定,网站目录设置是必不可少的,还望尽快修复或优化!
祝贵方越办越好!
宝塔版本:7.2,浏览器:谷歌,操作系统,Linux |