1

我允许我的网站用户上传图片,然后我使用 PHP 脚本提供图片。但是,这明显比静态链接慢。

我使用 PHP 提供图像的原因是因为我试图阻止人们访问存储图像的文件夹。

我应该使用 .htaccess 文件吗?我也在考虑 httpd 中的别名,但不确定如何使用它或者它是否适合 - 我可以使用它引用根目录外的文件夹吗?

任何帮助将非常感激。

谢谢

header("Content-type: " . filetype($file) . "\n"); header("Content-Disposition: inline; filename=\"{$image}\"\n"); header("Content-Length: ".(string)(filesize($file))); @readfile($file);

4

2 回答 2

4

Options -Indexes在标签内使用Directory以禁用索引。但是,您应该比这更进一步。

为了安全和一般文件系统卫生,您应该将资产(图像等)保存在与代码分开的目录中。

然后您可以将其添加到您的 apache 配置中:

<Directory /directory/where/assets/are>
    Order Allow,Deny
    Allow from all
    Options None
    AllowOverride None
    <IfModule mod_php5.c>
        RemoveHandler .php
        RemoveType .php
        php_flag engine off
    </IfModule>
</Directory>

这将禁止将文件作为资产目录中的脚本执行,并禁止文件列表,但允许任何人下载这些文件。以这种方式使用用户上传的文件保护目录很重要,因为它们可能会上传恶意 php 脚本,然后您可以托管这些脚本。

于 2012-04-24T22:40:45.923 回答
3

使用带有单行的 .htaccess 文件:

IndexIgnore *

然后,用户可以访问该文件夹,但看不到其中的任何内容。

或者,添加一个名为index.html但将其留空的文件(或包含“您可能无法查看此页面”消息)

于 2012-04-24T20:24:22.250 回答