【问题标题】:Allowing secure downloads in PHP for websites允许网站的 PHP 安全下载
【发布时间】:2012-08-18 15:27:41
【问题描述】:
我已将一些 zip 文件上传到我的服务器,现在希望允许用户下载它们,前提是他/她有适当的密码。我正在使用 PHP 进行编码,并且我已经做到了,因此除非输入了正确的密码,否则用户无法访问带有 zip 文件链接的页面,但是通过链接到我的 zip 文件,用户可以看到并且将来case 输入 zip 文件的绝对位置并绕过我的密码检查。如果我更改 zip 文件的文件权限,则无法将其作为链接,因为用户将无法访问它。我怎样才能允许用户获取 zip 文件,同时仍然保持它的安全?任何建议将不胜感激。
【问题讨论】:
标签:
php
security
download
zip
fileshare
【解决方案1】:
最好的方法是mask url。
- 用户登录
- 根据他的登录详细信息生成一个令牌。一些
md5 或任何你决定的东西
- 创建一个下载链接(例如:
download.php),该链接根据有效的令牌和会话加载文件并获取带有file_get_contents() 的文件。
【解决方案2】:
使用 .htaccess 拒绝对文件的直接访问。将此 .htaccess 文件放在相关文件夹中。
然后从php认证用户,认证成功后,将用户重定向到以文件名作为参数(甚至id)的download.php,然后使用force download让他们下载。这样即使他们有 zip 文件的直接链接,他们也无法下载该文件。