凭据存储在 Swagger UI 文档页面的前端在哪里?
Where are the credentials stored in the front-end of a Swagger UI doc page?
我一直在制作一些只有基本身份验证的端点。自动生成的 Swagger UI 看起来不错,用户可以在单击绿色的“授权”按钮后输入凭据在浏览器中使用它。
这些凭据存储在前端的何处以及如何存储?
默认情况下,这些凭据存储在浏览器内存中,并在刷新或关闭 Swagger UI 页面时被丢弃。
如果 Swagger UI 配置为 persistAuthorization: true
, the currently active credentials are saved in the authorized
key in the browser's local storage。刷新或重新打开 Swagger UI 页面后,将预先应用保存的凭据。单击授权对话框中的“注销”将从本地存储中删除相应的凭据。
请注意,当使用隐身/隐私浏览时,隐私标签的本地存储会在最后一个隐私标签关闭时被清除。
The boss is asking whether or not this is secure. I think in other S.O. posts it recommends that storing secrets in the browser's local cache shouldn't be done. Do you know if the secret is at least hashed? I was trying to look in the source code for my answers but not having much luck.
如果您的意思是 persistAuthorization: true
,我个人不会在生产中使用它。对我来说,这个配置看起来更像是 dev/test 环境的东西。
我不知道比较本地存储的安全性如何,例如cookie 或浏览器的“保存密码”功能。如果您发现有用的资源,请发表评论。
Swagger UI的认证相关代码是here and here. The persistAuthorization
config was added in this PR.
保存的凭据未经过哈希处理或编码,可能是因为 1) Swagger UI 代码仅在客户端运行,客户端 encoding/decoding 的秘密没有多大意义; 2) 它需要原始(未修改的)凭据来“试用”请求。
我一直在制作一些只有基本身份验证的端点。自动生成的 Swagger UI 看起来不错,用户可以在单击绿色的“授权”按钮后输入凭据在浏览器中使用它。
这些凭据存储在前端的何处以及如何存储?
默认情况下,这些凭据存储在浏览器内存中,并在刷新或关闭 Swagger UI 页面时被丢弃。
如果 Swagger UI 配置为 persistAuthorization: true
, the currently active credentials are saved in the authorized
key in the browser's local storage。刷新或重新打开 Swagger UI 页面后,将预先应用保存的凭据。单击授权对话框中的“注销”将从本地存储中删除相应的凭据。
请注意,当使用隐身/隐私浏览时,隐私标签的本地存储会在最后一个隐私标签关闭时被清除。
The boss is asking whether or not this is secure. I think in other S.O. posts it recommends that storing secrets in the browser's local cache shouldn't be done. Do you know if the secret is at least hashed? I was trying to look in the source code for my answers but not having much luck.
如果您的意思是 persistAuthorization: true
,我个人不会在生产中使用它。对我来说,这个配置看起来更像是 dev/test 环境的东西。
我不知道比较本地存储的安全性如何,例如cookie 或浏览器的“保存密码”功能。如果您发现有用的资源,请发表评论。
Swagger UI的认证相关代码是here and here. The persistAuthorization
config was added in this PR.
保存的凭据未经过哈希处理或编码,可能是因为 1) Swagger UI 代码仅在客户端运行,客户端 encoding/decoding 的秘密没有多大意义; 2) 它需要原始(未修改的)凭据来“试用”请求。