我必须限制直接下载网络服务器目录中的任何文件。另外,应该允许通过服务器脚本下载生成的加密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(上面显示)的直接访问。因此,没有永久链接可以直接访问。
答案 0 :(得分:1)
Encryption is almost always a bad choice for URL parameters
而不是http://www.sitename.com/xxxxxxxxxxx.php
只需将其设为http://www.sitename.com/download.php?onetimecode=[32 hex characters]
,并确保使用bin2hex(random_bytes())
生成令牌。
存储您尝试保护文档根目录以外的的实际数据,以防止直接对象访问,只允许有效的一次性代码提供对此代码的访问权。