Laravel 4:禁止访问除公共以外的任何文件或文件夹

问题描述 投票:1回答:2

我正在做一个小项目,并将其托管在普通的Godaddy主机计划中,问题是:所有文件系统都可以通过Internet访问。

因此,如何防止访问/ public以外的任何文件夹或文件

CONTRIBUTING.md  
app/     
artisan  
bootstrap/   
composer.json    
composer.lock    
phpunit.xml  
public/  
server.php   
vendor/

谢谢,

php laravel laravel-4
2个回答
2
投票

为什么不拆分项目? 将public的内容上载到您的文档根目录,并将其余内容上载到其他位置(例如您的主目录)。 然后只需修改public/index.php文件中的两个路径以指向正确的位置,例如

$path = __DIR__ . '/../my-app';

require $path . '/bootstrap/autoload.php';

$app = require_once $path . '/bootstrap/start.php';

2
投票

如果您将apache站点文档的根目录指向/public ,那么人们将无法在您的公共场所之外访问应用程序中的任何其他文件。 即使他们尝试做类似的事情:

http://yoursite.com/../

编辑:

这不是您应该依靠框架来做的事情,保护站点上的目录是Web服务器的工作,因此您需要在服务器上找到解决方案:虚拟主机,文档根目录,Web根目录,域目录甚至.htaccess组态。

在某些共享的托管公司中,您可以轻松地做到这一点,有些公司拥有cPanel或Plesk,但其他公司(如Hostgator)将为您提供足够的配置,因此您可以将目录根目录更改为/ public。 如果您没有cPanel帐户,GoDaddy似乎并没有多大帮助,但是,仍然有一些技巧可以帮助您以应有的方式进行操作: http : //support.godaddy.com/help/article / 4067 /设置一个非Web可访问的根文件夹 。 可能周围还有其他人。

© www.soinside.com 2019 - 2024. All rights reserved.