最近我在 BFF API 中发现了一个不受保护的端点,它暴露了:
使用此端点的前端使用此响应来启动 AuthorizationCode + PKCE 流程。 这样安全吗?
是 - 任何可以访问安全 Web 应用程序主页并触发代码流(例如通过单击登录按钮)的人都可以在授权请求中看到该信息:
GET /oauth/v2/authorize
Host: login.example.com
client_id=my-client&
redirect_uri=https://www.example.com/callback&
response_type=code&
scope=openid profile&
code_challenge=WhmRaP18B9z2zkYcIlb4uVcZzjLqcZsaBQJf5akUxsA&
code_challenge_method=S256&
state=CfDJ8Nxa-YhPzjpBilDQz2C...
我个人更喜欢 BFF 为前端创建运行时授权请求 URL,如下所示。不过,您提到的值仍然会暴露给任何触发登录的人。
POST /login/start
Host: bff.myapp.com