我已经将一些zip文件上传到了我的服务器上,现在如果用户有合适的密码,我想允许他/她下载这些文件。我是用PHP编码的,我已经做到了,除非输入了正确的密码,否则用户无法访问带有zip文件链接的页面,但通过有一个指向我的zip文件的链接,用户可以看到,在未来的情况下,键入zip文件的绝对位置,并绕过我的密码检查。如果我更改了zip文件的文件权限,那么我就不能将其作为链接,因为用户将无法访问它。我如何允许用户获取zip文件,同时保持其安全?任何建议都将不胜感激。
执行此操作的最佳方法是mask url
。
- 用户登录
- 根据他的登录详细信息生成令牌。一些
md5
或你决定的任何东西 - 创建一个下载链接(例如:
download.php
),根据有效的令牌和会话加载文件,并获得带有file_get_contents()
的文件
使用.htaccess拒绝直接访问文件。将此.htaccess文件放在相关文件夹中。
然后从php验证用户,在成功验证后,将用户重定向到一个以文件名为参数(甚至id)的download.php,然后使用force download
让他们下载。这样,即使他们有到zip文件的直接链接,他们也无法下载该文件。
您需要编写可以隐藏下载链接的代码/链接需要过期,新的链接应该取代它和/或链接应该更改。
您可以用PHP编写它,也可以使用现有的代码来实现这一点。
http://sixthlife.net/product/secure-download-links/