我使用php在我的localhost中创建了一个网站,我在我的图片文件夹中放了一个htaccess文件,以防止通过浏览器直接访问该文件。在htaccess我把这个 Deny from All 保护我的图片文件夹,它确实阻止我访问文件夹中的文件,如果我在浏览器中键入文件的直接链接但是当我使用php force时下载并设置文件夹的路径和我的计算机仍可下载的文件名。我怎么能防止这种情况发生?
这是php代码
<?php
$path="picture/check/";
$filename = "checks.png";
$actualfilename=$path.$filename;
$fakefilename="checks.png";
$num = 1;
if( $num == 1 ){
@readfile($actualfilename);
header('Content-type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . $fakefilename . '"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($actualfilename));
header('Accept-Ranges: bytes');
exit;
}
,该文件夹位于此文件夹中 来自网站实验1
htdocs/experiment1/index.php/picture/checks.png
如果我把它放在index.php
中,我可以使用上面的代码下载checks.png但我仍然可以从另一个文件夹下载check.png
htdocs/downloads.php
(它包含上面的php文件夹,但带有path:/experiment1/picture/checks.png
)
这意味着当我的网站在线时,人们可以创建一个php文件然后他/她可以下载文件在图片文件夹中,如果他们知道实际文件的路径。我想知道我怎么能防止这种情况发生我尝试使用htaccess命令Deny from all
但它不会阻止php文件下载它只是块访问如果把链接放在浏览器中请帮助其重要