我必须限制直接下载网络服务器目录中的任何文件。此外,应允许通过服务器脚本下载加密URL。
例如,
文件的目录路径:/home/downloads/password.txt
网址: http://www.sitename.com/downloads/password.txt
必须限制对 URL 的直接访问。但是,应该允许通过服务器生成的加密URL下载。
例如,
<a href="http://www.sitename.com/xxxxxxxxxxx.php">Download</a>
控制下载的实际服务器脚本将是,
http://www.sitename.com/private/download.php
但是,应限制对该 URL(如上所示)的直接访问。因此,将没有直接访问的永久链接。
加密几乎总是 URL 参数的糟糕选择。
与其http://www.sitename.com/xxxxxxxxxxx.php
不如让它http://www.sitename.com/download.php?onetimecode=[32 hex characters]
并确保使用bin2hex(random_bytes())
来生成令牌。
将您尝试保护的实际数据存储在文档根目录之外,以防止直接对象访问,仅允许有效的一次性代码提供对此代码的访问权限。