我已经在服务器上上传了一些文件。提供给我的链接非常简单,即;没有符号/符号等。如果我向用户提供相同的链接来下载数据,可能会导致我的服务器被黑客入侵或数据丢失。现在我的问题是如何加密这种
www.hello.com/myApp/myFile.mp3
url 并将加密后的 url 提供给浏览器可以理解的用户。
问候
我已经在服务器上上传了一些文件。提供给我的链接非常简单,即;没有符号/符号等。如果我向用户提供相同的链接来下载数据,可能会导致我的服务器被黑客入侵或数据丢失。现在我的问题是如何加密这种
www.hello.com/myApp/myFile.mp3
url 并将加密后的 url 提供给浏览器可以理解的用户。
问候
如果我误解了,请纠正我,但是除非您告诉他们可以下载文件,否则您是否试图阻止某人下载该文件?
然后威胁是有人可能会在搜索引擎上找到链接的文件或能够猜到它。
有几种方法可以降低这种威胁的可能性。
使网址非常长且不可猜测。只需将文件重命名为某个随机值即可。从命令行(linux)
echo http://example.com/file.mpe $(date) | md5sum
d8a5e8d341135379b8ad38f1d06970be
或者更简单,从http://tooln.net/pw/中选择一个随机密码并将文件重命名为不带符号的密码之一。两者都很难猜。
如果您认识此人,则可以轻松共享密码并在目录上设置密码。您可以通过 apache打开每个目录的密码。
通过robots.txt关闭网站的索引。
一个 URL 可以被加密,但如果浏览器可以理解它,那么解密它对于黑客来说将是一个微不足道的过程。我假设您想要做的是防止太多人访问您的 URL。为此,您必须拥有某种用户登录系统或基于 IP 的限制。这两者都必须由数据库支持。
不是直接链接到文件,而是链接到download.php?fileid=$some_file_id
数据库中的类似内容,每次下载文件时只需插入用户 ID(或 IP 地址)和文件 ID。然后将文件显示给用户,您将检查用户已下载该文件的次数以及是否小于您的阈值,例如:
SELECT COUNT(*) FROM downloads WHERE user = :user AND file_id = :id
然后让 PHP 将文件的内容回显到浏览器。
添加其他条款,例如将其限制为X
过去 24 小时内的下载等,或者您希望使用它。
您可以做的其他事情是将文件存储在文档根目录之外(或保护使用.htaccess
或类似的直接访问),并在链接中包含文件名的哈希,因此有人不能只是download.php?fileid=1
猜测下一个是download.php?fileid=2
.