【问题标题】:Instagram Browser CSRF issues (possibly hidden input issue)Instagram 浏览器 CSRF 问题(可能隐藏的输入问题)
【发布时间】:2021-02-23 17:40:55
【问题描述】:

我们的 Spring 应用程序用于预订各种服务。通常,我们的客户会在他们的 Instagram 简历中列出他们的服务。当用户点击 Instagram bio 中的链接时,我们的应用程序会在 Instagram 浏览器中打开。

在流程的关键点,我们的应用程序捕获了 403。这个 403 并不总是发生。但是,当它发生时,它只会发生在 iPhone 上在 Instagram 浏览器中导航的 一些 用户身上。没有其他设备/浏览器组合会导致它。这个 403 给我们带来了重大问题。

CSRF 令牌作为隐藏元素包含在提交的表单中,导致 403。也许 Instagram 的浏览器有时会忽略此令牌,但如何或为什么会超出我的范围。

有没有其他人经历过这样的事情?

谢谢

【问题讨论】:

  • 您找到解决此问题的方法了吗?
  • @WayBehind,否定的。仍然和它一起生活。你看到类似的东西吗?
  • 感谢您的回复。是的,通过 IFRAME 显示的 Django 应用程序表单存在一些问题。 Insta 浏览器未发送所有值。我们甚至尝试禁用登录页面上的 CSRF 要求,但没有成功。显然,Insta 使用的是 UIWebView,它是旧版 Safari 浏览器的折旧版本。
  • 非常令人沮丧,尤其是我们的大部分客户流量都是通过 Insta 进入的。作为一种解决方法,我们添加了一些代码来在它发生时通知我们。然后,我们向最终用户发送电子邮件,并建议他们使用 Safari 或 Chrome。我们确实尝试过通知 Insta,但我们也可能一直在与蓟田交谈。如果我们偶然发现了一个解决方案(不再积极尝试修复,因为我们浪费了这么多时间),我一定会在这里发布。顺便说一句,我不认为 IFRAME 是问题的一部分。至少,我们没有使用 IFRAME。我们还尝试了一些 CSRF 技巧,但没有帮助。
  • 感谢您的信息。如果您找到解决方案,请告诉我!

标签: spring web browser instagram http-status-code-403


【解决方案1】:

我在我的一个 Ruby on Rails 项目中遇到了这个问题,人们直接从 Instagram 个人资料链接导航到一个表单,有时我们会收到 422。

日志显示 Instagram 应用内浏览器提交的 CSRF cookie 与表单中隐藏的相应字段中的令牌不同,如果页面在应用内浏览器中正确加载,则不应出现这种情况。我们能够在一台设备上实时复制它,从用户的角度来看,页面加载和导航看起来完全正常。会不会和缓存有关?

之前我们已经有了带有max-age: 0 的默认 Rails 标头,但我们决定 简单设置

Cache-Control: no-cache, no-store

对于每个关键页面,看看它是否有任何变化。

问题似乎从此消失了。

【讨论】:

  • 很遗憾,这并没有为我们解决问题。
猜你喜欢
  • 2012-06-21
  • 2012-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多