Php 仅用于当前会话的公共文件
我有一个包含多个PDF文件的文件夹 每个会话的名称是创建的会话号 我想要的是,未经身份验证的用户可以下载与其会话对应的PDF文件,但不能访问其他文件,因为文件所在的文件夹是公用的。 我怎样才能解决这个问题?Php 仅用于当前会话的公共文件,php,joomla,permissions,Php,Joomla,Permissions,我有一个包含多个PDF文件的文件夹 每个会话的名称是创建的会话号 我想要的是,未经身份验证的用户可以下载与其会话对应的PDF文件,但不能访问其他文件,因为文件所在的文件夹是公用的。 我怎样才能解决这个问题? 注意:并非所有用户都经过身份验证首先,当您说对应于您的会话时,您是指他们的会话吗 首先要做的是防止目录列表,这显然是PDF所在的目录。这可以通过包含以下行的.htaccess文件轻松完成: 全盘否定 接下来,假设您正在谈论他们的会话,您可以编写一个简单的HTML链接来下载PDF,例如 Dow
注意:并非所有用户都经过身份验证首先,当您说对应于您的会话时,您是指他们的会话吗 首先要做的是防止目录列表,这显然是PDF所在的目录。这可以通过包含以下行的.htaccess文件轻松完成: 全盘否定 接下来,假设您正在谈论他们的会话,您可以编写一个简单的HTML链接来下载PDF,例如
Download your PDF <a href="/public/path/to/download.php">here</a>.
其中download.php只是一个服务器端代理服务脚本,例如
<?php
define('PDF_REPOSITORY', '/path/to/dir');
if (session_id() && file_exists(PDF_REPOSITORY . '/' . session_id() . ".pdf")) {
readfile(PDF_REPOSITORY . '/' . session_id() . ".pdf");
}
?>
在这里,我们利用了这样一个事实,即服务器有权读取资源,尽管客户端无法读取,因为上面设置了拒绝所有限制
显然,这个代理服务是一个非常精简的示例,它的安全性可能远远不止于此。就是这样!谢谢你的帮助。是的,这是他们的会议