Php 创建个性化下载链接
如果我的项目存储在数据库中,用户可以在购买后下载,我如何提供每个用户不同的链接 我在想,正确的做法是:给他们一个链接,该链接以某种方式根据他们的用户id进行散列。然后,当我处理我给他们的链接时,我只是反转散列函数以获得原始链接。这是正确的做事方式吗Php 创建个性化下载链接,php,html,security,Php,Html,Security,如果我的项目存储在数据库中,用户可以在购买后下载,我如何提供每个用户不同的链接 我在想,正确的做法是:给他们一个链接,该链接以某种方式根据他们的用户id进行散列。然后,当我处理我给他们的链接时,我只是反转散列函数以获得原始链接。这是正确的做事方式吗 如果这不是正确的方法,请有人给我指出正确的方向吗?您应该在数据库中存储类似“下载令牌”的内容。当用户想要下载某个东西时,您可以创建一个新的令牌(例如,一个随机数),如果有多个东西需要下载,您可以使用它们的ID(例如)将其绑定到它们 在URL中,简单地
如果这不是正确的方法,请有人给我指出正确的方向吗?您应该在数据库中存储类似“下载令牌”的内容。当用户想要下载某个东西时,您可以创建一个新的令牌(例如,一个随机数),如果有多个东西需要下载,您可以使用它们的ID(例如)将其绑定到它们
在URL中,简单地将令牌作为GET变量发送。一旦用户下载了内容,就从数据库中删除令牌。散列函数不能反转。我建议您阅读一下lighttpd的实现 它为您提供一个受保护的链接,在一定时间内有效。因为散列不能反转,所以需要在链接中传递信息的散列以及明文信息(如果可能)。例:
http://somesite.com/download.php?hash=<md5($secretkey.$userId.$documentId)>&usrId=<$userId>&documentId=<$documentId>
http://somesite.com/download.php?hash=&usrId=&documentId=
当你收到一个下载请求时,处理它,将它与给定的一个比较,如果它是相等的,那么你就考虑验证它。