跳转至

非 HTTP scheme 重定向 URI

如果您的应用是移动应用,您可以选择在重定向 URI 中使用自定义 URI scheme。自定义 URI scheme 重定向 URI 不需要验证。因此,用户设备上有可能安装了某个恶意应用,该应用声称自己能够处理您的重定向 URI。

整个攻击过程如下:

  1. 攻击者生成一个代码验证符(code verifier)和一个代码挑战(code challenge)。
  2. 攻击者以某种方式诱使受害者在其设备上安装恶意应用。该恶意应用注册了与您的应用相同的重定向 URI。
  3. 攻击者以某种方式误导受害者访问带有第 1 步生成的代码挑战的授权端点。
  4. 受害者完成了授权码流程,恶意应用接收到该授权码。
  5. 恶意应用使用第 1 步中的代码验证符和刚收到的授权码,兑换刷新令牌和访问令牌。

无法阻止恶意应用被安装到用户设备上。但是,我们可以通过不使用自定义 URI scheme 来缓解这种攻击。

为此,您可以使用 Apple Universal Links 和 Android App Links。