为什么对 OAuth Loopback 接口重定向 URI 使用 "http" 方案是可以接受的?
Why is it acceptable to use the "http" scheme for OAuth Loopback interface redirect URIs?
在 OAuth IETF RFC 的第 8.3 节:“环回重定向注意事项”中指出:
“环回接口重定向 URI 使用 http 方案(即,没有 TLS)。这对于环回接口重定向 URI 是可以接受的,因为 HTTP 请求永远不会离开设备。”
为什么这里的安全不需要 https?我意识到使用 PKCE 减轻了 URI 拦截的一些担忧,但我不确定我是否完全理解客户端如何在环回接口上接收重定向。
如果自己机器上的流量能被拦截,基本上'all is lost'。这是两个进程的通信,任何具有读取权限的东西都可以做更多的事情。
PKCE 缓解措施的存在主要是因为在现代 phone OS 上,应用程序可以有效地 'take over' 具有特定方案的某些 uri,这与 DNS 不同,后者有一个非常好的所有权系统,移动 OS 供应商通过引入新的非托管命名空间创建了一个漏洞。
因此,如果我的重定向以 my-app://
开头,没有什么可以阻止另一个应用程序也注册该架构并使用 oauth2 授权代码启动。
如果这让您认为像 Apple 这样的公司在这里搞砸了,那您肯定是对的。
在 OAuth IETF RFC 的第 8.3 节:“环回重定向注意事项”中指出:
“环回接口重定向 URI 使用 http 方案(即,没有 TLS)。这对于环回接口重定向 URI 是可以接受的,因为 HTTP 请求永远不会离开设备。”
为什么这里的安全不需要 https?我意识到使用 PKCE 减轻了 URI 拦截的一些担忧,但我不确定我是否完全理解客户端如何在环回接口上接收重定向。
如果自己机器上的流量能被拦截,基本上'all is lost'。这是两个进程的通信,任何具有读取权限的东西都可以做更多的事情。
PKCE 缓解措施的存在主要是因为在现代 phone OS 上,应用程序可以有效地 'take over' 具有特定方案的某些 uri,这与 DNS 不同,后者有一个非常好的所有权系统,移动 OS 供应商通过引入新的非托管命名空间创建了一个漏洞。
因此,如果我的重定向以 my-app://
开头,没有什么可以阻止另一个应用程序也注册该架构并使用 oauth2 授权代码启动。
如果这让您认为像 Apple 这样的公司在这里搞砸了,那您肯定是对的。