San*_*ngo 7 php email outlook laravel
这与编码本身并没有真正相关,我的项目在 Laravel 7.1 中,但在 Outlook 的安全测量中更多。
基本上,我有一个发送电子邮件的功能,其中包含一个按钮,它是一个带有令牌的链接,以及我的 Laravel 项目中执行某些操作的路由(在这种情况下,确认取消约会)。单击按钮时,它会将用户重定向到一个页面,该页面显示一条消息,说明约会已成功取消或令牌已过期(因为执行一次操作最终会从数据库中删除令牌,因此尝试再次执行此操作将失败并显示消息)。
这在测试环境中按预期工作,单击 Gmail 中的相同按钮或复制并粘贴浏览器地址栏中的链接。
但是对于 Outlook 及其带有安全链接保护的屏蔽链接,无法正常工作,一旦单击该按钮,它会将用户重定向到过期的令牌消息,但操作已按预期执行。发生这种情况是因为 safelink 正在访问该链接并在让用户打开新选项卡之前检查它是否安全,问题是“假”访问使我的应用程序按正常方式执行操作:(它取消约会基于该令牌,并从数据库中删除令牌),因此当用户被重定向时,这被视为对链接的第二次访问,并且用户获得的是过期的令牌消息,这当然是误导性的。
对于任何一次使用链接来说,这基本上都是一个问题,并且可能会影响其他应用程序。
这是微软最近的一个变化,尽管它在几个月前就起作用了,safelink 并不是什么新东西,但他们引入了新的安全功能。其他邮件提供商也可能会发生这种情况,但我刚刚用 Gmail 进行了测试,它的功能不同并且有效。
所以我真的不知道我能做些什么来解决这个问题,有没有办法检测点击是否来自真实用户之类的?Laravel 是否采取了措施来克服这个问题?
提前致谢。
Safelink保护向网站发起 HTTP HEAD请求以获取其计划重写的 URL,然后重写电子邮件中的 URL 以通过 MS 平台反弹。
许多 Web 应用程序处理 HEAD 请求,例如GET请求。如果这种情况发生在一次性 URL 上,则 SafeLink 的 HEAD 请求会触发操作,这意味着当浏览器发出“真实”请求时,链接已过期。
我为此使用的一个解决方案是检查传入请求中使用的 HTTP 方法,并且仅在它是 GET 时才对其进行操作;返回405 Method Not Allowed状态或类似状态(如果是其他情况)。
归档时间: |
|
查看次数: |
1327 次 |
最近记录: |