Skip to content

fix(#120): Content-Length 省略時もボディサイズ制限を適用する#133

Merged
hideyukiMORI merged 1 commit into
mainfrom
fix/120-request-size-limit-body-streaming
May 19, 2026
Merged

fix(#120): Content-Length 省略時もボディサイズ制限を適用する#133
hideyukiMORI merged 1 commit into
mainfrom
fix/120-request-size-limit-body-streaming

Conversation

@hideyukiMORI
Copy link
Copy Markdown
Owner

Summary

  • RequestSizeLimitMiddlewareContent-Length ヘッダーのみチェックしていたため、Transfer-Encoding: chunked でヘッダーを省略すると制限が完全に回避できた
  • await request.body() で実際のボディを読み込んでサイズチェックするよう修正
  • Content-Length がある場合は事前チェック(高速パス)も維持
  • 不正な Content-Length 値(非整数)は無視してボディチェックにフォールバック

Test plan

  • test_small_request_passes — 既存テスト継続パス
  • test_oversized_request_returns_413 — Content-Length あり・超過で 413
  • test_oversized_body_without_content_length_returns_413 — Content-Length なし・超過で 413(新規)
  • test_malformed_content_length_is_tolerated — 非整数 Content-Length で 500 にならない(新規)

Closes #120

🤖 Generated with Claude Code

BaseHTTPMiddleware がバッファリングした実際のボディを読んでチェックすることで
Transfer-Encoding: chunked リクエストによる制限回避を防ぐ。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@hideyukiMORI hideyukiMORI merged commit 3464551 into main May 19, 2026
1 check passed
@hideyukiMORI hideyukiMORI deleted the fix/120-request-size-limit-body-streaming branch May 21, 2026 15:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

RequestSizeLimitMiddleware: Content-Length 省略で制限が完全回避できる

1 participant