【发布时间】:2019-09-15 05:17:38
【问题描述】:
TLDR:是否可以使用 Apache .htaccess 文件比较附加到下载文件 URL 的 GET 参数中提供的 SHA1(或 MD5)哈希?如果哈希匹配则提供文件,否则显示权限被拒绝错误。
这是我想要做的:
首先,我有一个 Apache Web 服务器,我想用它来为用户提供静态文件。这些文件将是 PDF 文档/文本文件/图像/视频等。我想直接拒绝对这些文件的所有访问。我不想使用像 PHP 这样的脚本语言来提供这些文件,因为有些文件非常大。
接下来,我将使用一个单独的服务器来生成访问这些文件的链接。这些链接将包含一个安全哈希密钥(我在想 SHA1)。所以像(以 PHP 为例):
$access_token = sha1($file_name . $user_ip . $timestamp . $secret_salt);
然后我将为用户提供的链接将指向第一台服务器,并且看起来像(作为示例):
`https://www.example.com/?file=readme.txt&ip=192.168.0.1×tamp=0000000&hash=68761328
当用户点击链接时,我希望 Apache 服务器根据提供的参数和 secret_salt 生成哈希,并将其与用户提供的哈希进行比较。如果它们匹配 - 那么 Apache 可以提供文件,否则它应该显示权限被拒绝。
过去,我使用 .htaccess mod_rewrite 对 URL 参数或 Cookie 等进行简单比较。.htaccess 是否提供这种比较安全哈希值的能力?
【问题讨论】: