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