在 iFrame 内构建 OAuth 重定向流以减少应用程序中断是不是一个坏主意?

问题描述 投票:0回答:1

要在 OAuth 中获取令牌,需要与身份验证提供者来回进行此操作。站点和 Web 应用程序之间的屏幕闪烁也会在此过程中丢失内部状态。另外,它可能会让用户感到不舒服和困惑。

我创建了一个使用隐藏 iFrame 的解决方案,它可以获取令牌并通知父站点。用户看不到任何闪烁,应用程序也保持状态。

您是否发现这种方法存在任何问题以及安全问题(如果有)?

oauth-2.0
1个回答
0
投票

允许 OAuth 2.0 流在 iframe 中发生,您很容易受到所谓的点击劫持攻击,请参阅:https://datatracker.ietf.org/doc/html/rfc6819#section-4.4.1.9

4.4.1.9。威胁:针对授权的点击劫持攻击

通过点击劫持,恶意网站会在
中加载目标网站 透明 iFrame(参见 [iFrame])覆盖在一组虚拟的顶部
精心构造的按钮直接放置在下面
目标站点上的重要按钮。当用户单击可见的
按钮,他们实际上是在点击一个按钮(例如“授权”
按钮)在隐藏页面上。

影响:攻击者可以窃取用户的身份验证凭据 并访问他们的资源。

对策:

o 对于较新的浏览器,在授权期间避免使用 iFrame 能 通过使用 X-FRAME-OPTIONS 标头在服务器端强制执行 (第 5.2.2.6 节)。

o 对于较旧的浏览器,JavaScript 框架破坏(请参阅 [帧破坏]) 可以使用这些技术,但可能并非在所有浏览器中都有效。

示例请参见:https://melmanm.github.io/misc/2023/10/01/article10-oauth-clickjacking.html.

© www.soinside.com 2019 - 2024. All rights reserved.