【发布时间】:2022-01-24 04:46:05
【问题描述】:
【问题讨论】:
标签: swagger-ui openapi
【问题讨论】:
标签: swagger-ui openapi
默认情况下,这些凭据存储在浏览器内存中,并在刷新或关闭 Swagger UI 页面时被丢弃。
如果 Swagger UI 配置了 persistAuthorization: true,则当前活动的凭据将保存在浏览器 local storage 的 authorized 键中。刷新或重新打开 Swagger UI 页面后,将预先应用保存的凭据。在“授权”对话框中单击“注销”会从本地存储中删除相应的凭据。
请注意,使用隐身/隐私浏览时,当最后一个隐私标签关闭时,隐私标签的本地存储会被清除。
老板在问这是否安全。我认为在其他 S.O.帖子建议不要在浏览器的本地缓存中存储秘密。你知道这个秘密是否至少被散列了吗?我试图在源代码中查找我的答案,但运气不佳。
如果您的意思是persistAuthorization: true,我个人不会在生产中使用它。对我来说,这个配置看起来更像是开发/测试环境的东西。
我不知道如何比较(不)保护本地存储,例如cookie 或浏览器的“保存密码”功能。如果您发现有用的资源,请发表评论。
Swagger UI 的认证相关代码是here 和here。 persistAuthorization 配置已添加到 this PR。
保存的凭据没有经过散列或编码,可能是因为 1) Swagger UI 代码仅在客户端运行,而客户端的机密编码/解码没有多大意义; 2) 它需要原始(未修改的)凭据来“试用”请求。
【讨论】: