我是Laravel 5中的新人。
我在Stack Overflow上找到了这个Laravel 5 - Remove public from URL来从我的Laravel 5应用程序中删除公用文件夹。只有我对安全性有疑问。
当我从URL中删除public时,我必须更改Laravel 5的基本文件夹结构。是的,没有公共URL的工作正常。
但是关于Laravel的安全性是什么,因为我正在改变默认的文件夹结构?使用安全吗?
答案 0 :(得分:4)
您应该将Apache主机根目录指向$LARAVEL_PATH/public
目录而不是$LARAVEL_PATH
。
拥有www主机root而不是项目root的子目录是因为您没有通过Web服务器泄露任何项目文件。
即使所有PHP文件都有文件后缀.php
,恶意用户也可以访问您的$LARAVEL_PATH/storage
目录及其子目录内容,阅读composer.json
或package.json
以查找易受攻击的依赖项或读取.env
文件等。
如果您在共享主机上运行并且您具有强制public_html
,请尝试在该public_html
目录之外安装Laravel并删除public_html(如果为空)并将其替换为符号链接{{1 }} {的public_html {1}} $ LARAVEL_PATH /公共$LARAVEL_PATH/public OR if you want the Laravel instance to be subdirectory of
的public_html / $ PROJECT_SUBDIR`。
该公共目录是有理由使项目更安全。解决实际问题,不要试图打破这个简单但很好的安全性添加。 :)
答案 1 :(得分:-1)
您提供的此链接与更改框架的实际文件结构无关,此示例使用mod_rewrite
重写应用程序的URL。换句话说,您告诉服务器您希望指向该目录,而最终用户无法看到完整路径。
另请查看您提供的链接的以下答案。
将Laravel根文件夹中的server.php重命名为index.php和 将.htaccess文件从/ public目录复制到Laravel根目录 夹。 - 而已 !! :)