电子邮件和可重复使用的令牌URL

时间:2009-11-06 04:09:30

标签: html security email forms token

我正在建立一个为用户提供功能而不需要他们注册的网站。我们的想法是将电子邮件发送到包含带有令牌的链接的指定地址。这样,用户可以在他们想要对功能进行更改时随时链接。

虽然我意识到没有办法真正保护这样一个概念,但我正在寻找最小化令牌可见性的选项。在当前状态下,用户点击链接后会立即将其添加到其浏览器历史记录中,任何有权访问该计算机的人都可以使用该链接。

在大多数情况下,我会用一个简单的表单来解决这个问题,以便可以通过POST请求传递令牌,但电子邮件中并不真正支持表单。

所以问题是,有没有人知道在这样的电子邮件中隐藏令牌的另一种方法?

3 个答案:

答案 0 :(得分:0)

我确定您已经想到了这一点,但您可以向他们发送密码和指向他们需要输入该密码的URL的链接。如果通过电子邮件发送的URL包含另一个密码,那么将用户输入的密码设置得非常短,比起通常的安全性更小,例如PIN码。

答案 1 :(得分:0)

每次用户想要登录时,您都可以重新发送新令牌。让他们在他们的电子邮件地址中输入并向他们发送新令牌,同时将之前的令牌设置为“已过期”。或者,如果服务器检测到使用了旧的链接/令牌,它可以自动将新的链接/令牌发送到关联的电子邮件地址,并要求用户检查他们的电子邮件是否有新的链接。

这需要跟踪旧的,过期的令牌和相关的电子邮件地址,但仍然不需要注册 - 只是用户每次想要登录时都要检查他们的邮件。你基本上是在他们的电子邮件上备份认证

对于用户来说,这也是违反直觉的。

这会将令牌转换为cryptographic nonce,主要用于防止您提到的重播攻击。

答案 2 :(得分:0)

另一个答案,也许更有用:

某些浏览器(如Chrome)不会在浏览器历史记录中记录301“永久移动”重定向。 Firefox确实如此,但有一项建议要改变: https://wiki.mozilla.org/Browser_History:Redirects

例如,在Chrome中,如果您直接导航到

  

amazon.com

它将遵循301重定向到

  

www.amazon.com

如果您检查浏览器历史记录,则只会显示

  

www.amazon.com

因此,如果您的服务器从登录链接返回301重定向,则服务器可以记录该令牌,将其从重定向链接中删除,并且用户的浏览器将仅记录重定向链接。

(这是我第一次回复堆栈溢出 - 让我知道我的写作是否不清楚,或者我是否遗漏了其他礼仪)