为了账号安全,请及时绑定邮箱和手机立即绑定

php的web框架怎么实现单入口

php的web框架怎么实现单入口

POPMUISE 2019-04-21 20:14:30
我下载了ci,slim,laravel框架,上传到我的ubuntu+nginx+php主机上,但是我发现,随便这三个框架的任意一个目录中放一个test.php文件,输出echo"helloworld",然后这个文件竟然能在浏览器上访问。那么请问,这些框架不是单入口的吗,只能通过index.php访问,可是为什么这里能以目录+文件名的形式越过index.php进行访问吗,那随便一个文件都能被外部访问了,还有什么安全性和隔离性可言呢。还有就是怎么隐藏index.php这个文件呢,直接通过域名根目录访问各页面路由。
查看完整描述

2 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

你现在对单一入口的理解有点问题:单一入口指的是你的应用是通过一个入口文件进入的,其实你的单一入口的程序不就是个PHP文件嘛,也没什么特别的,为什么其它程序就不能被访问呢?你可能要说因为它是单一入口(这只是你臆想出来的),Web服务器可不认为只有它可以访问,能限制谁允许被访问,谁不允许被的就只有Web服务器,可以用它来限制只有你要的PHP被访问,其它的不允许。
另外:框架的源码应该是放到webRoot之外的,只有需要被访问的程序放在webRoot里,比如你的index.php还有一些静态资源。
如何实现限制只有单一入口这一个PHP访问,可以去查对应的框架所对应的Web服务器的写法:
比如我是YII2加Nginx
server{
server_namexxx.idarex.com;
indexindex.php;
set$rootdir/var/www/html/idarex/passport/web;
root$rootdir;
location/{
try_files$uri$uri/index.php?$args;
}
location~\.php${
includefastcgi_params;
fastcgi_indexindex.php;
fastcgi_paramSCRIPT_FILENAME$rootdir/index.php;
fastcgi_pass127.0.0.1:9000;
}
}
                            
查看完整回答
反对 回复 2019-04-21
  • 2 回答
  • 0 关注
  • 333 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信