服务器上的zip文件保护

时间:2013-08-24 01:45:09

标签: php zip hosting

我的网站上有zip文件,我登录了系统,所以只有有效密码的用户才能下载 ONCE 的zip文件。

但是他们总是可以通过在浏览器地址栏中输入文件路径直接下载zip文件。

您可以通过查看源代码获取zip文件的链接。

如何通过在浏览器地址栏中发布文件链接来拒绝人们下载zip文件?有可能吗?

2 个答案:

答案 0 :(得分:0)

首先,在根目录(〜/)中创建一个名为secure_zip的文件夹。这应该与您的public_html文件夹一起放置(意味着无法通过键入URL来访问它们)。

接下来,创建一个名为file.php的新php脚本: -

<?php
public function sendFile() {
    $filename            = "sample.zip";
    $attachment_location = $_SERVER["DOCUMENT_ROOT"]
        . "../secure_zip/" . $filename;

    if (file_exists($attachment_location)) {
        header('Cache-Control: public'); // needed for i.e.
        header('Content-Type: application/pdf');
        header('Content-Disposition: attachment; filename="' . $filename . '"');
        readfile($attachment_location);
        die();
    } else {
        die('Error: File not found.');
    }
}

如果您使用您喜欢的任何逻辑对用户进行身份验证,请调用sendFile(),例如:

if (true) { sendFile(); }

答案 1 :(得分:0)

不要将文件放在可访问Web的文件夹(例如/var/www/)中,而是将其置于上方,以便用户无法浏览(例如/var/files)。然后,在用户输入密码后,使用php脚本向用户提供服务,让脚本像文件一样设置标题,并使用readfile将文件内容输出到用户。