概要
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が一箇所で確認できる
概要
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-53src/cli/auth.rs:428-439src/api/files.rs:43-45影響
修正案
完了条件