【发布时间】:2014-02-05 13:12:06
【问题描述】:
我正在使用以下代码来保护 zip 文件的直接下载链接
<?php
$filename = $_GET["id"];
$path = "directory/{$filename}.zip";
$mm_type="application/octet-stream";
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Type: " . $mm_type);
header("Content-Length: " .(string)(filesize($path)) );
header('Content-Disposition: attachment; filename="'.basename($path).'"');
header("Content-Transfer-Encoding: binary\n");
readfile($path);
exit();
?>
代码是否足以保护直接下载链接。我不希望通过 IDM 或其他下载管理器看到链接。
现在,如果我在调用上述 php 代码或输入 wring 代码时不输入 id,服务器会发送 php 文件,其中包含一些错误,指出未找到指定的文件。但该文件揭示了文件的实际位置。在这种情况下如何保护 php 文件。我可以在 htaccess 文件中做些什么吗?
我是 php 的新手。 谢谢
【问题讨论】:
-
为什么有人知道位置很重要?如果您想保护访问权限,那么要求身份验证将是一个更好的选择。如果您不希望人们在不通过您的脚本的情况下下载它,该文件本身应该位于网络空间之外。