Skip to content

feat: /me/customer における email / traq_id の任意指定防止と安全化 #41

@reiroop

Description

@reiroop

解決したい課題

現在、顧客情報の作成(POST /me/customer)および更新(PATCH /me/customer)用のAPI仕様において、リクエストパラメータに emailtraq_id フィールドが含まれています。

クライアント側からこれらのパラメータを任意に送信可能であるため、以下のようなセキュリティ設計上のリスクが存在します。

  1. traq_id の任意書き換え:
    自身のアカウントに対して他人の traQ ID を不正に指定し、顧客情報の紐付けを改ざんできてしまうリスク。
  2. email の検証バイパス:
    メール所有権の確認プロセス(/verify-email)を経ないまま、任意のメールアドレスに顧客の登録情報を変更できてしまうリスク。

達成したい要件(ゴール)

APIスキーマ(インターフェース契約)の安全設計(Secure by Design)を実現するため、以下の要件を満たす仕様変更を行います。

  • 入力パラメータの制限:
    顧客の作成・更新時のリクエストスキーマから email および traq_id フィールドを排除し、入力可能なパラメータを name(氏名) のみに制限します。
  • セッション情報のセキュアな暗黙利用:
    顧客情報の登録・更新に必要な emailtraq_id はクライアントから受け取るのではなく、バックエンド側で認証セッション情報(NeoShowcaseAuth または EmailVerifiedSession)から安全に取得して処理を行うAPI仕様とします。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions