【问题标题】:PHP protect a folderPHP 保护文件夹
【发布时间】:2010-06-25 17:45:30
【问题描述】:

我需要保护一个文件夹。网站是用 PHP 完成的。有一个管理区域,其中包含 PDF、DOC 等文件……所以;我无法使用会话变量保护这些文件。 PHP中有没有办法保护文件夹?

谢谢

【问题讨论】:

  • 虽然这不能回答您的问题,但您确实知道您可以将文件移到网络根目录之外,并且服务器和脚本仍然可以访问它们吗?如果您有授权机制,那么它们应该与受 php 保护的目录一样安全,如果不安全的话。
  • 我同意@ricebowl ...如果这些文件不打算直接通过网站提供,那么将它们放在网络根目录之外并通过脚本访问它们是有意义的仅限。

标签: php


【解决方案1】:

你不能只使用 PHP 来保护它,但是在 .htaccess 文件的帮助下,这是可能的。

在你要保护的目录下创建一个.htaccess文件,并把它放进去:

Deny from all

然后,要创建一个 PHP 脚本来访问文件,您可以执行以下操作:

// Add user authentication code
$name = 'protected_dir/file.pdf';
$fp = fopen($name, 'rb');
header("Content-Type: application/pdf");
header("Content-Length: " . filesize($name));
fpassthru($fp);
exit;

【讨论】:

    【解决方案2】:

    您可以将文件放在可视区域后面(在 public_html 之前)并使用受会话保护的下载页面下载文件。

    <?php
    if(session_is_loggedin()){
        readfile($_GET['file']);
    
    }
    ?>
    

    显然,需要进行一些额外的更改,但这是您要求的部分。

    【讨论】:

      猜你喜欢
      • 2014-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-26
      • 1970-01-01
      相关资源
      最近更新 更多