kangle、宝塔等面板建服务器关于php跨站访问的安全设置php.ini中open_basedir的独家详解

kangle时间较久,使用者较多,但是免费版更新慢,使用不算“智能”。优点是可以方便的控制独立用户的独立面板。而宝塔则是侧重个人使用,因为新兴面板,相当智能化,基本上一键安装下去既可以自由搭配完成,然而独立用户上可能没那么方便,我暂时还没研究这块。而且宝塔开源免费了,更新速度快,有团队保障,很看好这一软件。

回归正题,任何软件和事物都有两面性,为了满足大部分人的需求,很多东西是无法尽善尽美的,这就需要在使用他们的时候,必须还要完成一些自己的个性化设置,比如说防护软件和安全策略以及用户权限等各方面的考量,如果您和我一样是新手,那还是保守点牺牲一点性能,求稳吧,比如安装个安全狗之类的,虽然免费版功能受限,新版本去掉了不少可用的功能,但有就比没有强一点,这个自己权衡。(安全狗4.2版本的定时任务很好,可以满足定时重启的用户相当方便,至于5.0+好像没有这个功能了,对于不会批处理或者脚本处理的用户来说有点麻烦了,需要找教程手动去做windows的计划任务)。

核心问题,当有的时候你感觉服务器设置好了,也能跑了,然后你再回头想测测,比如我,放一个php一句话木马上去,或者就放个可用于任意上传能夺取控制权的东东上去,后果会是啥样,结果我自己就傻眼了,不管用什么方式,传上去服务器竟然没有任何防护,认为他安全,也的确就是列列目录,能上传个东东,相当正常的页面很少有防护会管他,如果再加上你的web目录权限不严谨的话,好家伙人家可以任意遍历你的目录和磁盘,接下来的我就不说了,我也只想做点简单处理,不过深的考虑深层次安全问题,实在是刚入门水平不够。

为了规避上述跨目录、跨站问题,靠权限是不行的,因为本身就不是权限的事,这是我的理解,我想核心就是php的设置问题,尤其是php.ini里也介绍了open_basedir本来就是控制你的php能多大范围的去操作。然而网上大部分都是linux的设置,直搬到windows服务器还是有点区别的,写法语法问题,对于新手也不能不讲,linux的写法,都是/data/wwwroot/这样,这是什么类似dos绝对路径啊。那么对应到windows下就应该是带盘符的全路径例如:C:\Windows\Temp。还有就是linux用”:”分割,而windows用”;”分割。





以上就是kangle和宝塔的对比,我不多说了自己看图,不明白问吧,有点累了!