gpt4 book ai didi

php - 单击电子邮件中的 Outlook 安全链接保护链接似乎执行了两次代码

转载 作者:行者123 更新时间:2023-12-03 11:22:35 33 4
gpt4 key购买 nike

这与编码本身并没有真正相关,我的项目在 Laravel 7.1 中,但在 Outlook 的安全测量中更多。

基本上,我有一个发送电子邮件的功能,其中包含一个按钮,它是一个带有 token 的链接,以及我的 Laravel 项目中执行某些操作的路由(在这种情况下,确认取消约会)。单击按钮时,它会将用户重定向到一个页面,该页面显示一条消息,说明约会已成功取消或 token 已过期(因为执行一次操作最终会从数据库中删除 token ,因此尝试再次执行此操作将失败并显示消息)。

这在测试环境中按预期工作,单击 Gmail 中的相同按钮或复制并粘贴浏览器地址栏中的链接。

但是对于 Outlook 及其带有安全链接保护的屏蔽链接,无法正常工作,一旦单击该按钮,它会将用户重定向到过期的 token 消息,但操作已按预期执行。
发生这种情况是因为 safelink 正在访问该链接并在让用户打开新选项卡之前检查它是否安全,问题是“假”访问使我的应用程序按正常方式执行操作:(它取消约会基于该 token ,并从数据库中删除 token ),因此当用户被重定向时,这被视为对链接的第二次访问,并且用户获得的是过期的 token 消息,这当然是误导性的。

对于任何一次使用链接来说,这基本上都是一个问题,并且可能会影响其他应用程序。

这是微软最近的一个变化,尽管它在几个月前就起作用了,safelink 并不是什么新东西,但他们引入了新的安全功能。其他邮件提供商也可能会发生这种情况,但我刚刚用 Gmail 进行了测试,它的功能不同并且有效。

所以我真的不知道我能做些什么来解决这个问题,有没有办法检测点击是否来自真实用户之类的? Laravel 是否采取了措施来克服这个问题?

提前致谢。

最佳答案

Safelink保护启动 HTTP HEAD向网站请求它计划重写的 URL,然后重写电子邮件中的 URL 以通过 MS 平台反弹。
许多 Web 应用程序处理 HEAD 请求,例如 GET要求。如果这种情况发生在一次性 URL 上,则 SafeLink 的 HEAD 请求会触发操作,这意味着当浏览器发出“真实”请求时,链接已过期。
我为此使用的一个解决方案是检查传入请求中使用的 HTTP 方法,并且仅在它是 GET 时才对其进行操作;返回 405 Method Not Allowed状态或类似,如果它是别的东西。

关于php - 单击电子邮件中的 Outlook 安全链接保护链接似乎执行了两次代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62108517/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com