服务器上的zip文件保护


zip file protection on server

我的网站中有zip文件,我创建了一个登录系统,因此只有具有有效密码的用户才能下载zip文件ONCE

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

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

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

与其将文件放在web可访问的文件夹中(例如/var/www/),不如将其放在上面,这样用户就无法浏览到它(如/var/files)。然后,在用户键入密码后,使用php脚本将其提供给用户,让脚本像设置文件一样设置标题,并使用readfile将文件的内容输出给用户。

首先,在根目录(~/)中创建一个名为secure_zip之类的文件夹。它应该放在public_html文件夹旁边(这意味着不能通过键入URL来访问它们)。

接下来,创建一个新的php脚本,名为file.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(); }