大多数密码重置系统都涉及通过电子邮件向用户发送一个一次性链接,让他们重置密码。令牌需要在 URL 中,因为大多数电子邮件客户端不允许 HTML 电子邮件执行 POST 请求,并且要求用户重新键入令牌是不可接受的体验。但是,这会使代币面临通过引用标头泄漏的风险。
一种可能的解决方案是避免密码重置页面上的任何外部链接。但是,大多数网站都有一个包含外部链接(Facebook、Twitter 等)的标准模板,不使用该模板会使页面看起来很奇怪——并可能让用户认为它是一个钓鱼网站。
浏览器供应商似乎意识到了这个问题,并且一些浏览器支持元引用标签,可以将其设置为“从不”,因此 URL 永远不会泄露。然而,并不是所有的浏览器都支持这个标签,所以它不是一个完整的解决方案。
那么,如何创建一个没有这种泄漏的密码重置过程呢?
