Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

TS SDK: `ctx.http.fetch` splits header values that contain commas

クローズ 初心者向け
#6,123 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

@kshanxs がすでに取り組んでいます。

2026年10月11日 から。

  • #6140 @kshanxs による — オープン

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
76/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
typescript
領域
api

調査の方向性

バグは crates/bindings-typescript/src/server/http_shared.ts の serializeHeaders()(62行目付近)にあります。この関数は headers-polyfill の headersToList() を呼び出しているため、カンマを含む値が分割されます。まずこの関数と、その出力が ctx.http.fetch にどのように渡されるかを読んでください。次に、カンマを含む単一のヘッダー値で再現します。値が変更されずに送信され、呼び出し元が配列として渡した値は引き続き個別のヘッダー行になれば完了です。テストを追加する前に、serializeHeaders を対象とする既存のテストがないか確認してください。

索引モデルが issue の本文から書いたものです。

説明

Version: 2.11.0, still on master e596513
Where: crates/bindings-typescript/src/server/http_shared.ts, serializeHeaders() (~L62)

serializeHeaders uses headers-polyfill's headersToList(), which splits any value containing a comma into
separate values, so the host sends separate header lines:

ctx.http.fetch(url, { method: 'POST', headers: { 'webhook-signature': 'v1,mf3NSumak46pFQ8AgeTg5fboQUCyeXw3TcawjLmuuSI=' }, body });

Actual on the wire:

webhook-signature: v1
webhook-signature: mf3NSumak46pFQ8AgeTg5fboQUCyeXw3TcawjLmuuSI=

The receiver reads it as v1, mf3NSum…, which no Standard Webhooks verifier accepts. Any single-valued header
containing a comma is affected: Stripe-style t=…,v1=… signatures, HTTP Message Signatures, Cookie,
If-Modified-Since dates, Accept lists. Rust and C# modules send the value intact.
Expected: the header value is sent as given.
Fix: iterate headers.entries() (or the raw init) instead of headersToList. Only split values the caller passed
as arrays.

主要言語
Rust
スター
25.3k
フォーク
1.1k
平均マージ
2日 18時間
マージ済み PR(30日)
65

環境構築

  • Dockerfile または Docker Compose ファイルあり
  • プルリクエストのテンプレートあり
  • コントリビューションガイドなし

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

clockworklabs/SpacetimeDB のほかの issue

clockworklabs/SpacetimeDB の issue をすべて見る

似ている issue

Rust の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。