我有2台服务器.在服务器1上我有一个WordPress网站.在服务器2上,我有大量的.zip文件,我希望WordPress网站的成员能够下载.
如何对这些用户进行身份验证,以便只有作为网站成员的人才能从第二台服务器下载文件?
是否可以使用PHP,以便只有来自我的域的引用才能访问这些文件?
注意:下载文件的链接在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);
?>
Run Code Online (Sandbox Code Playgroud)
服务器1:下载链接
<?PHP
echo '<a href="http://server2.com/download.php?f=text.txt&c=' . md5($_SERVER['REMOTE_ADDR'] . 'salt') / '">Download File</a>';
?>
Run Code Online (Sandbox Code Playgroud)
该系统的工作原理是创建一个只能在其生成的IP上使用的链接.因此注册用户无法在其他地方共享链接.它不是最安全的东西,但它很容易实现并且可以工作.
| 归档时间: |
|
| 查看次数: |
2880 次 |
| 最近记录: |