我在Microsoft安全链接方面遇到了一个奇怪的问题.当我们向用户发送解锁邮箱时,Microsoft会更改带有安全链接的URL,当用户单击邮箱中的解锁链接时,出于安全原因,Microsoft首先在后台打开页面,用户被解锁,令牌无效.因此,当页面加载但用户已经解锁时,它显示解锁令牌无效.

有没有人有同样的问题?

谢谢.

推荐答案

修改身份验证终结点以处理预览流量,而无需刻录授权码.来自SafelLinks/Exchange Online Protection的请求将不包括与普通客户端请求相同的标头;请查看SafelLinks烧录了验证码的实例中的日志(log),以了解您可以拒绝的未经授权的请求类型.确保您的端点没有完成Head请求的身份验证流(这意味着如果请求的HTTP方法是Head,则返回405);如果SafelLinks也发出GET请求,那么在继续进行身份验证流之前验证UserAgent头之类的操作可能会起作用.除了涉及某种形式的单次使用令牌交换之外,您没有提供任何关于您的链接 struct 或身份验证策略的信息,但您还应该判断IETF RFC,以确认您正确地遵守了您正在使用的任何协议.

其他 idea :

  • 邮箱中的URL应该始终是HTTPS链接(而不是HTTP).
  • 你可能缺乏被认为是安全的邮箱发件人的声誉;阅读一下建立良好的邮箱发件人声誉的策略.
  • 如果链接的域与发件人的域不匹配,您的链接可能会被推定为可疑/不安全.
  • 对于精美的产品来说,这不是一个很好的解决方案,但可以try 在邮箱中包含URL的纯文本(不是超链接)版本;大多数现代邮箱客户会注意到这是一个链接,并自动为最终用户提供超链接,但SafelLinks可能会扫描原始邮箱正文,以查找定义的href个属性.从历史上看,他们的URL解析非常原始,很多人通过找到一些混淆安全链接匹配策略的东西(例如,https://halon.io/blog/fooled-microsofts-safe-link-technology)来绕过它.
  • 建议那些用户将您的域添加到他们的权限列表("白名单"),这样安全链接将忽略您的链接.

Ruby-on-rails相关问答推荐

使用ImportMaps将HighLightJS添加到rails 7.1

ActiveRecord::声明在类别中无效#new

Sidekiq with Rails - 控制台与 rake 任务中的不同 Sidekiq 实例

根据表单内的 Select 字段值渲染部分内容

ruby on rails 中的自定义关联

Rails - 按连接表数据排序

撬Ruby 如何重新加载?

使用 Devise 令牌登录,这是内置的吗?

simple_forms 自定义数据属性

是否可以在 Rails 集成测试或规范中指定用户代理?

如何在 rspec 测试中输出变量?

保存后重定向到索引而不是显示

如何使用 Rspec 判断 ActiveJob 中排队的内容

活动管理员:仅自定义新表单

如何在 Rails 应用程序中测试 ElasticSearch (Rspec)

Rails,Docker:主机不存在:默认

Ruby on Rails:如何在 select_tag 中使用默认占位符?

RoR select_tag 默认值和选项

使用 Rspec 测试关联的正确方法?

警告:运行 ruby​​ 或 gem 命令时不安全的世界可写目录