0

我有一个使用我们网站提供的功能之一的不同公司的用户列表。每当他们联系我们的业务组时,我们需要通过电子邮件向请求者发送一个 url,以便他们上传一些数据。所有这些外部用户都没有任何专用帐户。但是,我们不希望向他们提供静态链接,因为任何人都可以通过 Internet 访问该链接。我们希望生成动态链接。这是通常做的事情吗?是否有行业接受的方式来做到这一点?我们是否应该确保动态链接在一定时间后过期 - 如果是,是否有任何设计选项?

非常感谢!

4

3 回答 3

2

您可能有一个将令牌作为参数的静态 URL。例如。http://www.mycompany.com/exchange/<UUID>http://www.mycompany.com/exchange?token=<UUID>

UUID 可以在一个时间范围内有效,或者仅限于一次使用(一次访问或一次上传)。

于 2013-03-15T16:37:28.880 回答
2

通常, url 的参数而不是实际的 url 是动态的。基本上,您生成存储在某处的参数,通常在数据库中,并使用 url 和参数发送电子邮件。此 url 仅在有限的时间段内有效,并且可能仅对一个请求有效。

问题解答:

  • 是的,这是非常常用的,例如,取消订阅邮件列表或使用有效的电子邮件地址验证帐户
  • 我不知道“行业接受”的任何单一方式,有很多方法可以做到,但这个想法并不复杂 - 你只需要决定一个合适的令牌格式
  • 通常,您应该确保链接在一定时间后过期。取决于可能是几天、一周或其他时间的用例。在实践中,您会删除或禁用数据库中生成的参数。但是,如果这些数据可能需要很长一段时间,您可能需要考虑一个功能,以便以后可以检索它。
于 2013-03-15T16:42:32.857 回答
2

其他变体是在 Web 浏览器中使用该站点上存在的 cookie(当然,如果有的话)。
但是这个解决方案有一些缺点:
用户可以在不同的机器、不同的浏览器中打开链接。用户可以清除所有 cookie,或者当用户尝试继续授予的 URL 时,它们可以在上次访问您的站点后过期。在这些情况下,用户将无法访问您的页面。

于 2013-03-15T17:14:15.933 回答