Kuthibitisha Webhook Hakumaanishi Kuhakiki Data Yake
Watengenezaji wengi hupeleka hitilafu (bug) hatari kwenye mfumo wa uzalishaji (production). Wanachanganya authentication na validation.
Authentication inamaanisha ujumbe umetoka kwa mtoa huduma sahihi. Validation inamaanisha data iliyo ndani ya ujumbe ni sahihi.
Ukifanya hatua ya kwanza pekee, utapoteza pesa.
Udhaifu wa hivi karibuni wa WordPress (CVE-2026-9189) unaonyesha kosa hili. Kiambatisho (Add-on) cha Contact Form 7 PayPal na Stripe kilishindwa kukagua kiasi cha malipo.
Hivi ndivyo mshambuliaji anavyotumia udhaifu huu:
- Mshambuliaji anatengeneza oda ya $2,000.
- Mshambuliaji anafanya malipo halali ya $1.
- Wanaweka namba ya ankara (invoice number) ili ilingane na oda ya $2,000.
- PayPal inatuma taarifa halali na iliyothibitishwa ya malipo ya $1.
- Plugin inaona ujumbe uliothibitishwa na kuweka alama kuwa oda ya $2,000 imelipwa.
Plugin iliamini mjumbe lakini ilipuuza ujumbe wenyewe.
Usifanye kosa hili. Unaposhughulikia webhooks, fuata hatua hizi:
- Thibitisha ujumbe kwa kutumia saini (signatures) au siri za pamoja (shared secrets).
- Linganisha kiasi na sarafu na oda iliyopo kwenye kanzi data (database) yako.
- Hakikisha barua pepe ya mpokeaji inalingana na akaunti yako.
- Tumia thamani ya upande wa seva (server-side value) kuunganisha oda. Usiamini namba ya ankara (invoice ID) iliyotumwa kwenye payload pekee.
- Tumia idempotency ili kupuuza namba za muamala zinazojirudia.
- Endelea kuwa na uhakiki wa TLS ikiwa hai kwa maombi yote.
- Feli kwa kufunga (Fail closed). Ikiwa ukaguzi wowote utashindwa, acha kila kitu.
Ikiwa unatumia Contact Form 7 PayPal na Stripe Add-on toleo la 2.4.9 au la zamani zaidi, lifanyie sasisho (update) sasa hivi. Kila oda ambayo haijalipwa ni lengo la shambulio hili.
Kila wakati thibitisha mjumbe, kisha kagua data.