Skip to content

HTTP clientのtimeout・redirect policyを明示する #28

Description

@mimo-3

概要

Notion API、file upload、OAuth token exchangeで使用するreqwest clientに、timeoutとredirect policyを明示していません。reqwest 0.12のdefaultはrequest/read/connect timeoutなし、redirectは最大10回followです。

該当箇所

  • src/client/mod.rs:34-36,51-53
  • src/cli/auth.rs:428-439
  • src/api/files.rs:43-45

影響

  • 接続やresponse bodyがstallするとCLIが長時間終了しない
  • 認証付きNotion requestの送信先検証は初回URLだけで、redirect先へ同じorigin/HTTPS制約を再適用していない
  • commandごとにtransport policyが分散し、security fixが片方へだけ入る

修正案

  • connect/read/request timeoutを明示し、upload向けは別の妥当な値を設定する
  • 認証付きAPI requestはredirect無効、またはHTTPSかつ完全一致originのみ許可する
  • OAuth/file uploadを含め共通client builderへ集約する
  • stall/redirect/cross-origin redirectのwiremock testを追加する

完了条件

  • 全network requestが有限時間で終了する
  • Bearer/Basic credentialがredirectで許可外originへ送られない
  • transport policyが一箇所で確認できる

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