Skip to content

公開デプロイ時の receiver ハードニング(認証・CORS 制限) #43

Description

@kosako

背景

receiver は現状ローカルプロトタイプ前提(127.0.0.1、認証なし、CORS *)。EC2 等への公開デプロイを見据えると、閲覧・操作系の面を保護する必要がある。#29 で GitHub token を receiver が持つようになると、攻撃対象としての価値も上がる。

スコープ(管理面の保護)

  • inbox / 操作系 endpoint への認証を追加する
    • GET /(inbox)
    • GET /feedback.json
    • GET /screenshots/:file
    • POST /feedback/:id/status
    • POST /import
    • POST /feedback/:id/github-issueReceiver inbox から GitHub Issue を作成する #29
    • 最小構成: 共有 token(env / config)+ Bearer or Basic 認証。inbox UI はログインフォームか URL token
  • CORS を * から許可 origin リスト(config)に変更する
  • HTTPS 終端・bind 先の前提を README のデプロイ節として明文化する(reverse proxy 前提で可)
  • secrets(GitHub token / Slack webhook)は env 注入を推奨とし、config ファイル運用との優先順位を明記する

受け入れ条件

  • 認証なしで inbox・feedback データ・screenshot にアクセスできない設定が可能
  • 許可 origin 以外からの browser fetch がブロックされる
  • ローカル開発(認証なし)は引き続きゼロ設定で動く
  • README にデプロイ時の設定手順が載っている

関連

  • 取り込み面(widget → receiver の POST /feedback)の保護は別 issue(ペア認証・受信データ安全性)で扱う

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions