Skip to content

Improve the security of user data contained in the backend API #974

@itutu-tienday

Description

@itutu-tienday

Summary

  • 現在、一部のAPIのresponseに、各userの内部id (databaseのuser.id) が含まれているものがある

  • これにより、一定のセキュリティ低下の影響がある

  • 対象バージョン

    • barebone-studio v2.4.0, およびその fork repositories

Countermeasure

対応方針(暫定対策)

  1. 外部公開(認証外)のページについては、基本的に user.id は公開しない
    • issue報告時点(barebone-studio v2.4.0相当)では、これに該当する箇所はない
  2. HTTP request/response header のような、APIのベースとなる部分では、user.id は使用しない
    • issue報告時点(barebone-studio v2.4.0相当)では、これに該当する箇所はない
  3. 管理者以外には、自身以外のuser.id は公開しないようにする
    • 現在、管理者以外で、他人の user.id が見えている可能性のある箇所
      • Workspacesのshare関連(share先userの検索、shareされたworkspaceの所有者情報)
    • 現在、自分自身の user.id が見えている箇所
      • routers/
        • registration.py
        • user_admin.py
        • user_me.py
        • workspaces
    • Note: 該当箇所の検索条件
      • router の response が response_model=User (studio.app.common.schemas.users.User) の箇所
      • router の response に List["User"] = Relationship が指定された model を含む箇所
対応方針(恒久対策)
  • 恒久対策は、「user.id ではない、別のidを用意する」といった対応が想定されるが、一定の改修コストは想定される
    ※対応範囲や対応の要否を要検討

Tasks

  • 1. 暫定対策の実施
  • 2. 恒久対策の実施

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions