【发布时间】:2020-09-18 08:30:45
【问题描述】:
这与编码本身并没有真正的关系,我的项目是在 Laravel 7.1 中,但更多的是在 Outlook 的安全测量中。
基本上我有一个发送包含按钮的电子邮件的功能,它是一个带有令牌的链接和我的 Laravel 项目中执行某些事情的路线(在这种情况下,确认约会取消)。单击该按钮时,它会将用户重定向到显示一条消息的页面,该页面显示约会已成功取消或令牌已过期(因为执行该操作一次最终会从数据库中删除令牌,因此尝试再次执行此操作将失败并显示消息)。
这在测试环境中按预期工作,点击 Gmail 中的相同按钮或复制并粘贴浏览器地址栏中的链接。
但是对于 Outlook 及其带有安全链接保护的屏蔽链接,无法正常工作,一旦单击该按钮,它会将用户重定向到过期的令牌消息,但操作已按应有的方式执行。 发生这种情况是因为 safelink 正在访问该链接并在让用户打开新选项卡之前检查它是否安全,问题是“假”访问使我的应用程序执行正常应执行的操作:(它取消了基于该令牌,并且它从数据库中删除令牌),因此当用户被重定向时,这被视为对链接的第二次访问,并且用户输出的是过期的令牌消息,这当然是误导。
这基本上是任何一次使用链接的问题,并且可能会影响其他应用程序。
这是 Microsoft 最近的一项更改,尽管这在几个月前还有效,但 safelink 并不是什么新鲜事,但他们引入了新的安全功能。其他邮件提供商也可能会发生这种情况,但我刚刚使用 Gmail 进行了测试,但它的效果并不相同。
所以我真的不知道我能做些什么来解决这个问题,有没有办法检测点击是否来自真实用户或其他什么? Laravel 是否采取了措施来克服这个问题?
提前致谢。
【问题讨论】:
-
您最终找到了一个好的解决方案吗?