仅按会话下载

Download only by Session

假设我想在服务器的某个目录下托管一些 pdf 文件(例如 domain/myfiles )。出于这个原因,我创建了一个独特的 - 难以猜测 - link,使用一些常见的 php 函数,然后将文件放入这个特定目录( domain/myfiles/hardToGuessHash.pdf )。

然而,如果有人通过 domain/myfiles/hardToGuessHash.pdf 访问我的服务器,他将能够看到并下载此文件。

有什么方法可以提前要求 session access 以阻止对我的文档的未授权访问?我在 Whosebug 上搜索过,但我真的没有想到什么。

澄清:我不想隐藏下载link。我想要求下载验证。例如,如果拥有文件下载权限的人 A 将下载文件 link 复制粘贴到 B 人身上,那么 B 人应该无法下载该文件,只能从 link !

谢谢!

因此将文件存储在文档根目录之外 - 这样就没有人可以直接访问了。

所有文件都通过 php 检查会话的页面切断:

<?php
session_start();
if (isset($_SESSION['logged_in'])) { //or what ever session check you like
  $file = '/this/is/the/path/file.mp3';

  header('Content-type: audio/mpeg');
  header('Content-length: ' . filesize($file));
  readfile($file);
}else{
echo 'you cant have the file';
}
?>

我承认大部分都是偷的Allow logged in user to Download File in PHP else nobody can't