3

我来自 CodeIgniter,其中文件/文件夹通常以这种方式受到保护:

.php 文件

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

index.html 文件

<html>
<head>
    <title>403 Forbidden</title>
</head>
<body>

<p>Directory access is forbidden.</p>

</body>
</html>

我想可以使用 .htaccess 或硬方式,但是,如何使用 Laravel 4 来完成?有没有办法使用它的“标准”?

编辑是为共享主机构建的项目。

/assets/{css, img, js}
/packages
/system/{app, bootstrap, vendor, index.php, .htaccess, favicon.ico}
4

4 回答 4

6

您需要创建一个文件 .htaccess,之后您需要添加以下内容:

# Disable Directory Browsing
Options All -Indexes
于 2015-06-27T05:31:56.437 回答
1

我在这里为此类问题提供了类似的答案:Laravel 图像库逻辑

原则上 - 您应该将所有资产存储在公共之外 - 并使用 PHP readfile()根据需要安全地将它们提供给用户。

于 2013-05-11T12:20:16.657 回答
1

您应该设置您的应用程序,以便初始public目录之外的所有内容都在您的文档根目录之外。这就是 Laravel 实际附带public目录的原因之一。通常,大多数人会将此目录符号链接到文档根目录。public显然,里面的任何东西都是公开的。如果您希望您的资产目录不可访问,您可以选择使用 htaccess 或index.html类似于您描述的文件。

如果出于某种原因,您需要重新整理一些内容并将实际的应用程序文件放在文档根目录中,那么如果您认为需要,您将需要实施某种形式的安全性。同样,这可能正在使用 htaccess 或index.html文件。通常,htaccess 方法更简单。如果您想保护该app目录,您可以.htaccess在其中放置一个看起来像这样的文件。

deny from all
于 2013-05-10T14:07:30.080 回答
0

答案可能晚了一年,但我认为它可能会帮助其他想要解决类似问题的人。

在这里查看 Kelt Dockins 的帖子。Codesleeve Laravel 资产管道将允许您将资产文件夹安全地放在 /public 文件夹之外。

于 2014-05-23T07:22:05.653 回答