【问题标题】:Where are the credentials stored in the front-end of a Swagger UI doc page?Swagger UI 文档页面前端存储的凭据在哪里?
【发布时间】:2022-01-24 04:46:05
【问题描述】:

我一直在制作一些只有基本身份验证的端点。自动生成的 Swagger UI 看起来不错,用户可以通过在单击绿色的“授权”按钮后输入他们的凭据在浏览器中使用它。

这些凭据存储在前端的何处以及如何存储?

【问题讨论】:

    标签: swagger-ui openapi


    【解决方案1】:

    默认情况下,这些凭据存储在浏览器内存中,并在刷新或关闭 Swagger UI 页面时被丢弃。


    如果 Swagger UI 配置了 persistAuthorization: true,则当前活动的凭据将保存在浏览器 local storageauthorized 键中。刷新或重新打开 Swagger UI 页面后,将预先应用保存的凭据。在“授权”对话框中单击“注销”会从本地存储中删除相应的凭据。

    请注意,使用隐身/隐私浏览时,当最后一个隐私标签关闭时,隐私标签的本地存储会被清除。

    老板在问这是否安全。我认为在其他 S.O.帖子建议不要在浏览器的本地缓存中存储秘密。你知道这个秘密是否至少被散列了吗?我试图在源代码中查找我的答案,但运气不佳。

    如果您的意思是persistAuthorization: true,我个人不会在生产中使用它。对我来说,这个配置看起来更像是开发/测试环境的东西。

    我不知道如何比较(不)保护本地存储,例如cookie 或浏览器的“保存密码”功能。如果您发现有用的资源,请发表评论。

    Swagger UI 的认证相关代码是hereherepersistAuthorization 配置已添加到 this PR

    保存的凭据没有经过散列或编码,可能是因为 1) Swagger UI 代码仅在客户端运行,而客户端的机密编码/解码没有多大意义; 2) 它需要原始(未修改的)凭据来“试用”请求。

    【讨论】:

    • 好的,答案很好。我问是因为我处于老板询问这是否安全的情况。我认为在其他 S.O.帖子建议不要在浏览器的本地缓存中存储秘密。你知道这个秘密是否至少被散列了吗?我试图在源代码中查找我的答案,但运气不佳。
    • 更新了答案。
    猜你喜欢
    • 1970-01-01
    • 2021-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-17
    • 1970-01-01
    • 2011-04-26
    相关资源
    最近更新 更多