వెబ్హుక్ను అథెంటికేట్ చేయడం అంటే దానిని వాలిడేట్ చేయడం కాదు
చాలా మంది డెవలపర్లు ప్రొడక్షన్లోకి ప్రమాదకరమైన బగ్ను పంపిస్తారు. వారు అథెంటికేషన్ను (authentication) వాలిడేషన్తో (validation) కన్ఫ్యూజ్ అవుతారు.
అథెంటికేషన్ అంటే సందేశం సరైన ప్రొవైడర్ నుండి వచ్చిందని అర్థం. వాలిడేషన్ అంటే సందేశంలోని డేటా సరైనదని అర్థం.
మీరు కేవలం మొదటి దశను మాత్రమే చేస్తే, మీరు డబ్బును కోల్పోతారు.
ఇటీవలి WordPress లోని ఒక లోపం (CVE-2026-9189) ఈ తప్పును చూపుతుంది. Contact Form 7 PayPal మరియు Stripe Add-on పేమెంట్ మొత్తాలను తనిఖీ చేయడంలో విఫలమైంది.
ఒక అటాకర్ దీనిని ఎలా వాడుకుంటారో ఇక్కడ చూడండి:
- ఒక అటాకర్ $2,000 ఆర్డర్ను సృష్టిస్తారు.
- అటాకర్ నిజమైన $1 పేమెంట్ను చేస్తారు.
- వారు $2,000 ఆర్డర్కు సరిపోయేలా ఇన్వాయిస్ నంబర్ను సెట్ చేస్తారు.
- PayPal ఆ $1 పేమెంట్కు సంబంధించి నిజమైన, వెరిఫై చేయబడిన నోటిఫికేషన్ను పంపుతుంది.
- ప్లగిన్ ఆ వెరిఫై చేయబడిన సందేశాన్ని చూసి, $2,000 ఆర్డర్ను 'పేడ్' (paid) గా మార్క్ చేస్తుంది.
ఆ ప్లగిన్ సందేశాన్ని పంపిన వ్యక్తిని నమ్మింది కానీ, సందేశాన్ని పట్టించుకోలేదు.
ఈ తప్పు చేయకండి. మీరు వెబ్హుక్లను హ్యాండిల్ చేసేటప్పుడు, ఈ దశలను అనుసరించండి:
- సిగ్నేచర్లు (signatures) లేదా షేర్డ్ సీక్రెట్స్ (shared secrets) ఉపయోగించి సందేశాన్ని అథెంటికేట్ చేయండి.
- మీ డేటాబేస్లోని ఆర్డర్తో అమౌంట్ మరియు కరెన్సీని సరిపోల్చండి.
- రిసీపియంట్ ఈమెయిల్ మీ ఖాతాకు సరిపోలుతుందో లేదో వెరిఫై చేయండి.
- ఆర్డర్ను లింక్ చేయడానికి సర్వర్-సైడ్ వాల్యూను (server-side value) ఉపయోగించండి. పేలోడ్లో (payload) పంపబడిన ఇన్వాయిస్ IDని మాత్రమే నమ్మకండి.
- డూప్లికేట్ ట్రాన్సాక్షన్ IDలను విస్మరించడానికి ఐడెంపోటెన్సీ (idempotency)ని ఉపయోగించండి.
- అన్ని రిక్వెస్ట్లకు TLS వెరిఫికేషన్ను యాక్టివ్గా ఉంచండి.
- ఫెయిల్ క్లోజ్ (Fail closed). ఏదైనా చెక్ విఫలమైతే, అన్నింటినీ ఆపివేయండి.
మీరు Contact Form 7 PayPal మరియు Stripe Add-on వెర్షన్ 2.4.9 లేదా అంతకంటే పాత వెర్షన్ను ఉపయోగిస్తుంటే, వెంటనే అప్డేట్ చేయండి. చెల్లించని ప్రతి ఆర్డర్ ఈ ఎక్స్ప్లాయిట్ (exploit) కు లక్ష్యంగా మారుతుంది.
ఎల్లప్పుడూ సందేశాన్ని పంపిన వ్యక్తిని అథెంటికేట్ చేయండి, ఆపై డేటాను తనిఖీ చేయండి.