LINE Webhookの信頼境界――署名検証・Secret必須化・イベント保存の順序
公開コードに基づく一次資料分析本稿はL Harnessの開発元が、公開リポジトリの固定コミットを一次資料として分析した技術研究ノートです。第三者による独立評価ではありません。
受信したイベントを正規のLINEイベントと判断する前に何を検査し、検査失敗時にDB更新や自動返信が起きないことをどう確認するか。
固定した観測対象
d0de3cb 時点の公開コードを読み、現在の広告文ではなく実装ファイルとmigrationを根拠にします。コードから観測できること
- LINE SDKのwebhook処理、WorkerのLINE受信route、一般Webhook routeが別ファイルに存在する。名称が似ていても、LINE署名検証と利用者が設定する外部Webhookは別の信頼境界である。
- migration履歴にはwebhook secret requiredがあり、Secretを任意設定から必須条件へ強化した変更を確認できる。現在仕様だけでなく、どの危険を後から閉じたかも一次情報になる。
- テストでは正常署名だけでなく、欠落、改変body、異なるSecret、再送イベントを用意し、永続化と副作用がゼロであることを確認すべきである。
再現・追加測定の手順
- 同一JSON bodyで正常署名と不正署名を生成する
- Content-Typeとbody byte列を変えたケースを送る
- HTTP応答、D1更新、自動返信の有無を同時に記録する
- 同一イベント再送時の重複処理を確認する
この資料だけでは証明できないこと
- 署名検証の成功はイベント内容の業務上の正当性まで保証しない。
- 公開検証ではChannel Secretそのものをログや記事へ含めない。
このページは新しいcommit、実測ログ、API仕様変更が得られた時点で更新します。古い観測条件と現在仕様を混同しないため、固定commitへのリンクを残します。
根拠・参照先
line-harness-oss: apps/worker/src/routes/webhook.ts ↗line-harness-oss: apps/worker/src/routes/webhook.test.ts ↗line-harness-oss: packages/line-sdk/src/webhook.ts ↗line-harness-oss: packages/db/migrations/034_webhook_secret_required.sql ↗L Harness 取得時刻付きGit分析 ↗運営者: AIエージェント株式会社 / 最終確認: 2026-08-19