Outils et scripts IA
Contrôle de sécurité des gestionnaires de webhooks
Vérifiez les endpoints de webhooks pour GitHub, Shopify, Twilio, Paddle, Clerk, Razorpay et 9 autres fournisseurs : vérifications de signature absentes, secrets dans le code, contrôles qui laissent passer en cas d'échec, comparaisons avec ==, HMAC calculés sur du JSON parsé, rejeux et événements en double.
Ce que vous recevez : 1 fichier · 50.11 KB · ZIP
Voir les options d'achatDescription du produit
Une route qui lit X-Shopify-Topic et expédie la commande, mais ne vérifie jamais X-Shopify-Hmac-Sha256, expédie des commandes pour quiconque trouve l'URL. Il en va de même pour un HMAC calculé sur JSON.stringify(req.body), un twilio.webhook({ validate: false }) oublié après les tests ou un contrôle qui renvoie true lorsque l'en-tête de signature est absent. Cette skill détecte ces erreurs et sept autres erreurs de webhooks avant la mise en production de l'endpoint, et vous indique comment corriger chacune d'elles.
Votre agent exécute un scanner sur votre code de webhooks en JavaScript et TypeScript (Express, Next.js, NestJS, Hono, Koa, Fastify), Python (Flask, FastAPI, Django, AWS Lambda), PHP (Laravel), Ruby (Rails, Sinatra) et Go. Il trouve chaque route et considère une route POST comme un récepteur GitHub, GitLab, Shopify, Twilio, Paddle, Lemon Squeezy, Polar, Svix, Clerk, Resend, SendGrid, Mailgun, Square, Razorpay ou Coinbase lorsqu'elle lit les en-têtes ou le payload d'événement de ce fournisseur. Il contrôle chaque route séparément et connaît les appels de vérification de chaque fournisseur (octokit verify, authenticate.webhook, twilio.webhook(), paddle.webhooks.unmarshal, validateEvent, verifyWebhook, Svix Webhook.verify et d'autres) : les routes vérifiées, ainsi que celles couvertes par un middleware, un décorateur ou un helper de vérification dans un autre fichier scanné (Express app.use, wrappers de handlers Go, middleware Next.js, Rails before_action et Rack::TwilioWebhookAuthentication), ne sont donc pas signalées. Il ignore les commentaires et les fichiers de test et n'exécute jamais votre code. Il renvoie BLOCK, REVIEW ou NOT FLAGGED, avec le fichier, la ligne, la raison et une approche plus sûre. Les secrets ne sont jamais affichés.
Ce qui est vérifié
BLOCK (à corriger avant la mise en ligne)
- W01 : routes POST qui lisent les en-têtes ou le payload de webhooks d'un fournisseur sans vérification de signature
- W02 : secrets de signature de webhooks, clés de fournisseurs et tokens GitLab écrits dans le code
- W03 : vérification désactivée ou laissant passer en cas d'échec (validate: false, octokit receive(), laisser passer la requête quand la signature ou le secret manque, ne rejeter que lorsqu'une signature est présente, ou continuer après une vérification échouée)
REVIEW (à contrôler avant la publication)
- W11 : signatures comparées avec ==, ===, strcmp ou bytes.Equal au lieu d'une comparaison à temps constant
- W12 : HMAC calculés sur du JSON resérialisé au lieu du corps brut de la requête
- W13 : contrôles écrits à la main de signatures horodatées sans fenêtre de temps (rejeu)
- W14 : événements de commande et de paiement traités sans contrôle de l'identifiant d'événement ni des doublons
- W15 : l'ancien en-tête X-Hub-Signature en SHA-1 de GitHub ou l'ancien en-tête de signature de Square
- W16 : secrets de webhooks lus depuis l'environnement avec une valeur de repli codée en dur
- W17 : vérification qu'un paramètre d'environnement ou un flag SKIP_ ou DISABLE_ peut désactiver
Ce qui est inclus
- Le scanner (Python 3.9+, bibliothèque standard uniquement)
- Un guide des règles avec la raison, une approche plus sûre et un lien vers la documentation du fournisseur pour chaque règle
- Un projet d'exemple à risque et un projet sûr, ainsi que le rapport réel produit par le scanner sur le projet à risque
Limites
Il lit le code tel qu'il est écrit : une vérification effectuée par une passerelle API, un proxy ou du code situé hors du dossier scanné n'est pas vue, et les valeurs construites sur plusieurs fichiers ne sont pas suivies. Une route qui ne mentionne un fournisseur que dans son chemin n'est pas traitée comme un récepteur de webhooks. Les webhooks Stripe ne sont pas couverts. NOT FLAGGED n'est pas une garantie.
Contenu
Un fichier ZIP de 19 fichiers : SKILL.md, le scanner dans scripts/ (6 fichiers Python), references/rules.md (chaque règle avec sa raison et une approche plus sûre) et examples/ (10 fichiers d'exemple plus report.md, la sortie réelle du scanner sur l'exemple à risque).
Mode d'emploi : Il s'agit d'une skill pour agent : un dossier contenant un fichier SKILL.md et des scripts Python qu'un agent de programmation IA comme Claude Code, Cursor ou Codex CLI peut exécuter. Décompressez-le dans le dossier des skills de votre agent (pour Claude Code : ~/.claude/skills/), puis demandez à votre agent de vérifier votre projet. Les scripts fonctionnent aussi seuls avec Python 3.9 ou une version plus récente, sans rien à installer. Ils se contentent de lire vos fichiers : aucun accès réseau, et rien n'est envoyé nulle part.
Ce que vous recevez
1 fichier · 50.11 KB
- webhook-handler-safety-check-1.0.0.zipZIP · 50.11 KB
Outils et scripts IA
Contrôle de sécurité des gestionnaires de webhooks
Vérifiez les endpoints de webhooks pour GitHub, Shopify, Twilio, Paddle, Clerk, Razorpay et 9 autres fournisseurs : vérifications de signature absentes, secrets dans le code, contrôles qui laissent passer en cas d'échec, comparaisons avec ==, HMAC calculés sur du JSON parsé, rejeux et événements en double.
Getly a ouvert les fichiers envoyés et n'a rien trouvé qui empêche leur ouverture. Ce n'est ni une analyse antivirus ni une note de qualité.
Tags
Questions fréquentes
Ai-je accès au produit immédiatement ?
Oui. C'est un produit numérique : vous pouvez le télécharger juste après le paiement, directement depuis votre bibliothèque.
Puis-je l'utiliser pour des projets commerciaux ?
Oui. L'usage commercial est autorisé : utilisez-le dans votre propre activité et dans ce que vous vendez. Vous ne pouvez pas revendre ni redistribuer le fichier lui-même.
Quelle est votre politique de remboursement ?
Vous pouvez demander un remboursement dans un délai de 30 jours. Si quelque chose ne va pas, demandez-le depuis votre commande et l'équipe Getly l'examine.
Quels formats et quelles tailles de fichier vais-je recevoir ?
Vous téléchargerez 1 fichier - ZIP - 50.11 KB au total.
Ai-je droit aux mises à jour gratuites ?
Oui : quand le vendeur publie une nouvelle version, vous pouvez retélécharger les derniers fichiers depuis votre bibliothèque sans frais. Consultez le journal des modifications pour les dernières mises à jour.
Prix
$5.00



