検索ワードを入力...

Stripe Webhook署名検証: 見落としがちなセキュリティ対策

## Webhookの危険性 Stripe Webhookのエンドポイントは誰でもPOSTできる。署名検証なしだと: - 偽の支払い完了通知で商品を騙し取られる - 偽の返金通知でデータ不整合 ## 署名検証の実装 ```php $payload = file_get_contents("php://input"); $sigHeader = $_SERVER["HTTP_STRIPE_SIGNATURE"] ?? ""; try { $event = StripeWebhook::constructEvent( $payload, $sigHeader, STRIPE_WEBHOOK_SECRET ); } catch (Exception $e) { http_response_code(400); exit; } // $event->type で分岐 switch ($event->type) { case "checkout.session.completed": handleCheckoutComplete($event->data->object); break; } ``` ## よくある間違い 1. `php://input` ではなく `$_POST` を使う → 署名が合わない 2. Webhook secretをハードコード → .envに移動 3. エラー時に詳細を返す → 攻撃者にヒントを与える

Comments (0)

No comments yet. Be the first to share your thoughts.