TP5将入口文件放在Public中,能得到那些安全保障?

ThinkPHP5版本中和Laravel相同,都是把入口文件放到Public中,官方文档中只是简略说明更安全,但我没搞明白究竟是那些情况会更安全,求大神指教、O(∩_∩)O谢谢

阅读 7.9k
6 个回答

把入口文件放在public目录下,形成单入口通道,这样除了你的入口文件index.php之外,其他所有的php文件都是不可以被浏览器直接访问到的,这样规避了一些恶意的请求。

能访问到的都是public目录下的文件,不存在其他源文件

提高目录安全性,绑定public目录后,除了 public 目录内的资源可以通过域名和IP的形式直接访问,其他目录无法直接访问。

tp3.. 入口文件和项目是在同一级目录下,webserver不就把所有文件都暴露出去了

新手上路,请多包涵

这个跟服务器环境又关系。无论你用apache还是ngnix的时候,设置root虚拟根目录的时候,如果index.php是public文件夹下面,那么服务器软件只会让外部只能访问到public下面的所有东西,而public外层的所有东西都是不可以在外部访问(这个是linux对apache或者nginx的权限限制问题)。另外有些人喜欢把upload放到public文件下面,其实这个安全性也是不够的,正确的应该是放到项目根目录,然后在public下面创建文件夹的软连接,还有设置upload文件夹不可以执行任何动态语言。
这个和单一入口这个技术点没有关系。因为tp5你可以设置很多个入口问题。复制index.php就可以了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题