84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
ThinkPHP5版本中和Laravel相同,都是把入口文件放到Public中,官方文档中只是简略说明更安全,但我没搞明白究竟是那些情况会更安全,求大神指教、O(∩_∩)O谢谢
小伙看你根骨奇佳,潜力无限,来学PHP伐。
把入口文件放在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就可以了。
安全了是因为不把其他php文件放在同一个目录下
把入口文件放在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就可以了。
安全了是因为不把其他php文件放在同一个目录下