如何防止用户双击电子邮件中的链接?

问题描述 投票:0回答:1

当用户请求重置密码时,他们会收到一封电子邮件,其中包含生成密码重置代码的链接。此链接有效期为24小时,可以在24小时内重复使用,以便在第一个丢失或遗忘时生成新代码。当用户双击该链接时,会生成两个代码,导致用户对使用哪个代码感到困惑(第二个代码使用它开发的方式使第一个代码无效)。

由于电子邮件中的链接只是一个html标签,我不确定如何阻止用户双击该链接。

html email hyperlink click double
1个回答
0
投票

这听起来像你正面对the XY problem。您的实际问题是,用户会因快速连续访问而感到困惑,导致刚刚生成的代码无效,而不是链接可以被点击两次。

从安全的角度来看,这些链接应该是单一用途的,如果用户想要再次执行操作,则应该请求新的电子邮件。假设这是你被迫做的事情,我相信最好的妥协是将代码生成限制在一个时间范围内,所以在内部进行访问,比如5-10秒会导致向用户显示相同的代码,根据服务器的时间。

实现任何基于CSS的解决方案,这种解决方案适用于每个电子邮件客户端都很有挑战性(如果可能的话),我怀疑任何自尊的电子邮件客户端都会让你运行任何类型的JavaScript拦截事件。

以下工作在实际网页上的现代浏览器中,但这不仅是一个坏主意,如果您尝试在电子邮件中使用它,它也可能无法正常工作。我在这里提供它仅仅是为了完整性,表明它有点可能,但请不要依赖它来解决潜在的问题。

<style>a:focus { pointer-events: none }</style>
<p>This is some text, here's <a href="#try-me">a link</a> you can't double click by the way.</p>
© www.soinside.com 2019 - 2024. All rights reserved.