我通过一个php文件(我们称之为serveMedia.php)将图片和视频提供给我的index.php。 我使用mod_rewrite,php-sessions和URL中包含的一个令牌来调用index.php中的这些媒体文件,例如, src="media=SOMEFILENAME&type=jpeg&token=2134573946284615492345"
的媒体文件本身通过的.htaccess(deny from all
)只通过页面访问php文件
躺在文件夹中有限制存取权限现在我的问题:是否有可能使这个URL只能通过我的index.php访问? 我试图实现的是用户只能在通过我的页面发送内容时看到内容,而不是在他们访问它的URL时看到内容。
也许有一些先进的.htaccess或php选项我不知道? 我在托管的空间,所以这两个可能是我唯一的选择。
这就是我与此刻的工作:
的index.php
ob_start();
session_start();
if (!isset($_SESSION['token']) || $_COOKIE['PHPSESSID'] !== session_id()){
$token = md5(uniqid(rand(), true));
$_SESSION['token'] = $token;
}
else {
$token = $_SESSION['token'];
};
serveMedia.php:
if(isset($_GET['token'])
&& $_GET['token'] == $_SESSION['token']
&& $_COOKIE['PHPSESSID'] == session_id()){
//streamthisfile!
else {
header($_SERVER['SERVER_PROTOCOL'].' 404 Not Found', true, 404);
echo "no file";
session_regenerate_id(true);
session_destroy();
unset($_SESSION);
}
感谢您的帮助!
这是特定浏览器,而不是总是设置,对不对?我引用的页面的名称不是静态的... – basbebe