安防
OAuth 2比OAuth 1更易于为客户端实现,因为不再需要加密签名。相反,引入了对所有连接使用TLS的严格要求。
警告
如果您在授权期间尝试与非HTTPS终结点交互,OAuthLib将引发错误。然而,OAuthLib在令牌请求期间没有提供这样的保护,因为没有提供URI,只有请求正文。
请注意,虽然OAuth 2更简单,但它确实巧妙地将一些重要的职责从提供者转移到了客户端。最值得注意的是,客户端必须确保所有令牌始终保密。使用持有者令牌访问受保护的资源不会提供客户端的真实性,这意味着能够获取您的令牌的恶意方可以使用它们,而提供商无法知道其中的区别。这与OAuth 1不同,在OAuth 1中,丢失的令牌在没有客户端秘密和令牌绑定秘密的情况下无法使用,因为每个请求的签名都需要它们。
环境变量
可以使用环境变量自定义OAuthLib中的一些安全设置。您可以使用它绕过OAuthLib的一些安全检查,以便运行自动化测试。 Never 在生产中绕过这些检查。
- OAUTHLIB_INSECURE_TRANSPORT
正常情况下,OAuthLib将引发
InsecureTransportError
如果您尝试通过HTTP而不是HTTPS使用OAuth2。设置此环境变量将防止引发此错误。这对于本地测试或自动化测试非常有用。 Never 在生产中设置此变量。
- OAUTHLIB_STRICT_TOKEN_TYPE
在解析OAuth2令牌响应时,OAuthLib通常会忽略
token_type
参数。设置此变量将导致OAuthLib专门检查响应中的此参数,并引发MissingTokenTypeError
如果参数缺失,则返回。