【问题标题】:How to only allow PHP to download images from my server?如何只允许 PHP 从我的服务器下载图像?
【发布时间】:2021-09-01 17:34:27
【问题描述】:

我有一个服务器,其中包含一个用于下载图像的简单 php 文件和一个包含这些图像的文件夹。

<?php

$filepath = "myFiles/" . $_POST["file"];
if (file_exists($filepath)) {
    $file = fopen($filepath,"r") or die();
    echo fread($file,filesize($filepath));
    fclose($file);
}

?>

这个 download.php 文件以及 myFiles 文件夹都位于 www/html/ 文件夹中。

我正在尝试找出一种方法来实现它,以便我的 PHP 脚本可以访问我的图像文件,同时将文件锁定在常规访问者之外。我的问题是,如果我设置了无法通过浏览器查看文件的权限,那么 PHP 脚本也无法访问它们。所以要么两者都有访问权限,要么都没有。

我在正确的轨道上吗?我怎样才能做到这一点,以便我可以使用 PHP 脚本下载我的图像,同时保持图像无法访问?

【问题讨论】:

    标签: php apache2 file-permissions ubuntu-20.04


    【解决方案1】:

    这不是您可以使用 linux 文件系统权限处理的事情。您可以将 linux 权限恢复为文件最初的权限。

    相反,如果您有一个/home 文件夹,我建议您将原始文件隐藏在那里。如果有,请与您的虚拟主机商联系。

    否则,如果您必须将所有内容绝对放在www 中,则将文件隐藏在新的子文件夹中,例如“隐藏文件”,并在该文件夹中放置一个.htaccess 文件,以阻止浏览器直接访问这些文件。 .htaccess文件可以是一行文件,里面有Deny From All命令。

    这样您的文件将只能通过download.php 代理。

    【讨论】:

      猜你喜欢
      • 2014-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-16
      • 1970-01-01
      • 2016-03-13
      相关资源
      最近更新 更多