仅按会话下载
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
假设我想在服务器的某个目录下托管一些 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