我允许我的网站用户上传图片,然后我使用PHP脚本提供图像。但是,这明显慢于静态链接。
我使用PHP来提供图像的原因是因为我试图阻止人们访问存储图像的文件夹。
我应该使用.htaccess文件吗?我也在考虑httpd中的ALIAS,但不确定如何使用它或者它是否合适 - 我可以使用它来引用根目录外的文件夹吗?
非常感谢任何帮助。
由于
header("Content-type: " . filetype($file) . "\n");
header("Content-Disposition: inline; filename=\"{$image}\"\n");
header("Content-Length: ".(string)(filesize($file)));
@readfile($file);
答案 0 :(得分: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脚本。
答案 1 :(得分:3)
使用带有单行的.htaccess文件:
IndexIgnore *
然后,用户可以访问该文件夹但看不到任何内容。
或者,添加名为index.html
的文件,但将其留空(或包含“您可能无法查看此页面”消息)