LIVE Intel Feed21.639 exponierte Instanzen128.457 Checks93.4% Auth-Bypass RisikoUpdate: Feb 2026Keine Speicherung deiner Eingaben
Runbook

Stripe Webhooks verifizieren

Signaturen prüfen, Replay verhindern.

Ziel

Signaturen prüfen, Replay verhindern.

Sichere Defaults

  • Deny‑by‑default
  • Least privilege
  • Explizite Allow‑Listen statt Wildcards

Snippet (Copy/Paste)

// Next.js App Router: app/api/stripe/webhook/route.ts
import Stripe from "stripe"
import { headers } from "next/headers"

export const runtime = "nodejs" // IMPORTANT for raw body

const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!, { apiVersion: "2024-06-20" })

export async function POST(req: Request) {
  const sig = headers().get("stripe-signature")
  const body = await req.text() // raw
  if (!sig) return new Response("Missing signature", { status: 400 })

  let event: Stripe.Event
  try {
    event = stripe.webhooks.constructEvent(body, sig, process.env.STRIPE_WEBHOOK_SECRET!)
  } catch (err) {
    return new Response("Invalid signature", { status: 400 })
  }

  // idempotency: store event.id to avoid double processing
  return new Response("ok", { status: 200 })
}

Implementierung

  • Ziel definieren: Was soll diese Konfiguration erreichen? (Stripe Webhooks verifizieren)
  • Sichere Defaults setzen (deny-by-default, least privilege).
  • Konfig anwenden + Reload/Deploy.
  • Verifizieren (curl/healthcheck/logs) + Re-Check.
  • Dokumentieren: Warum, wie, rollback.

Verifikation

curl -I https://deine-domain.tld
curl -sS https://deine-domain.tld/health || true
Steps
  1. Ziel definieren: Was soll diese Konfiguration erreichen? (Stripe Webhooks verifizieren)
  2. Sichere Defaults setzen (deny-by-default, least privilege).
  3. Konfig anwenden + Reload/Deploy.
  4. Verifizieren (curl/healthcheck/logs) + Re-Check.
  5. Dokumentieren: Warum, wie, rollback.
Hinweis: Diese Inhalte sind für Ops/Security gedacht. Keine „Namen-Datenbank“, keine Anschuldigungen – nur Runbooks, Tools und verifizierbare Checks.
CheckCopilotPro KitsVault