【问题标题】:Avoiding the users to be able to see a directory in php避免用户能够在 php 中看到目录
【发布时间】:2015-06-29 09:16:18
【问题描述】:

我目前正在开发一个使用 PHP 实现的商店 Web 应用程序。
根据我们的业务模型,我们需要为添加到系统中的每件商品提供一些图片。所以我将所有图片存储在一个名为 _goods_imgs 的文件夹中。在这个文件夹中,我为每件商品创建了一个新文件夹并将它们的图像存储在其中,当我想在 view_goods 中向用户显示图像时,我使用它们的绝对路径。我的问题是如何限制对这个文件夹的访问,这样如果有人在浏览器中键入 myshope.com/_goods_imgs 就无法看到这些目录。
任何帮助,将不胜感激。

【问题讨论】:

  • 我可以建议你@Umair 的答案,在每个目录中放置一个空的 index.html 文件,这样如果用户输入绝对路径,目录树就不会显示给用户。跨度>
  • 老实说,我已经尝试过这种方式,但是由于我在 _goods_imgs 目录中为每个商品都有一个文件夹,因此我不得不在每个商品中放置一个索引,我不认为这将是一个很好的做法。
  • Joomla 模块/组件/插件以这种方式工作。 (只是说)

标签: php apache security directory


【解决方案1】:

在您的根文件夹中创建一个 .htaccess 文件并放入以下代码

选项-索引

【讨论】:

  • 我有几个问题,1- 它需要任何 htpasswd 文件吗? 2-因为我已经在 html 文档中嵌入了图片,是否允许主题显示在最终的 html 中?
  • 这是唯一正确的答案。不需要 htpasswd 文件。只是一个带有此选项的 .htaccess 文件。它会告诉网络服务器(Apache)禁用文件夹列表。
【解决方案2】:

在每个文件夹中,放置一个名为index.html 的空文件或任何HTML 文件

因此,只要您输入图像文件夹的路径,index.html 就会运行,而不是在文件夹中列出图像

【讨论】:

    【解决方案3】:

    我会用下面的代码将 index.php 文件放入其中

    <?php
    header("location:../");
    // so every time user type that directory it will redirect to upper directory
    // or you can put homepage address. 
    
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-21
      • 2014-11-25
      • 1970-01-01
      相关资源
      最近更新 更多