gpt4 book ai didi

php - 保护远程服务器上的下载

转载 作者:可可西里 更新时间:2023-11-01 13:55:37 25 4
gpt4 key购买 nike

我有 2 个服务器。在服务器 1 上,我有一个 WordPress 网站。在服务器 2 上,我有大型 .zip 文件,我希望 WordPress 站点的成员能够下载这些文件。

如何验证这些用户,以便只有网站成员才能从第二个服务器下载文件?

是否可以使用 PHP 以便只有来 self 的域的引荐来源网址才能访问这些文件?

注意:下载文件的链接在 wordpress 站点上受到保护,因此未登录的用户将被重定向到加入页面。但是,现任和前任成员仍会知道下载目录,并且可能会下载文件或共享链接。

最佳答案

有几种方法可以做到这一点。最安全的方法是在服务器 1 和服务器 2 之间进行一些后端通信。但这里有一个简单的替代方法:

服务器 2:download.php

<?PHP
$file = $_GET['f'];
$code = $_GET['c'];
$ip = $_SERVER['REMOTE_ADDR'];

if ($code != md5($ip . 'salt')) {
die('authentication denied');
}

if(!file)
{
die('file not found');
}

// Set headers
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=$file");
header("Content-Type: application/zip");
header("Content-Transfer-Encoding: binary");

// Read the file from disk
readfile('/files/downloads/' . $file);

?>

服务器 1:下载链接

<?PHP
echo '<a href="http://server2.com/download.php?f=text.txt&c=' . md5($_SERVER['REMOTE_ADDR'] . 'salt') / '">Download File</a>';
?>

该系统的工作原理是创建一个链接,该链接只能在为其生成的 IP 上使用。所以注册用户不能在别处分享链接。它不是最安全的东西,但它很容易实现并且会起作用。

关于php - 保护远程服务器上的下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10964399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com