0

我已经在服务器上上传了一些文件。提供给我的链接非常简单,即;没有符号/符号等。如果我向用户提供相同的链接来下载数据,可能会导致我的服务器被黑客入侵或数据丢失。现在我的问题是如何加密这种

  www.hello.com/myApp/myFile.mp3

url 并将加密后的 url 提供给浏览器可以理解的用户。

问候

4

2 回答 2

1

如果我误解了,请纠正我,但是除非您告诉他们可以下载文件,否则您是否试图阻止某人下载该文件?

然后威胁是有人可能会在搜索引擎上找到链接的文件或能够猜到它。

有几种方法可以降低这种威胁的可能性。

  1. 使网址非常长且不可猜测。只需将文件重命名为某个随机值即可。从命令行(linux)

    echo http://example.com/file.mpe $(date) | md5sum d8a5e8d341135379b8ad38f1d06970be

    或者更简单,从http://tooln.net/pw/中选择一个随机密码并将文件重命名为不带符号的密码之一。两者都很难猜。

  2. 如果您认识此人,则可以轻松共享密码并在目录上设置密码。您可以通过 apache打开每个目录的密码。

  3. 通过robots.txt关闭网站的索引。

于 2013-07-26T23:54:03.080 回答
0

一个 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.

于 2013-07-26T22:59:10.053 回答