Webhook ಅನ್ನು Authenticate ಮಾಡುವುದು ಎಂದರೆ ಅದನ್ನು Validate ಮಾಡುವುದು ಎಂದರ್ಥವಲ್ಲ
ಅನೇಕ ಡೆವಲಪರ್ಗಳು ಪ್ರೊಡಕ್ಷನ್ಗೆ ಅಪಾಯಕಾರಿ ಬಗ್ಗಳನ್ನು (bugs) ಕಳುಹಿಸುತ್ತಾರೆ. ಅವರು Authentication ಮತ್ತು Validation ನಡುವಿನ ವ್ಯತ್ಯಾಸವನ್ನು ಗೊಂದಲ ಮಾಡಿಕೊಳ್ಳುತ್ತಾರೆ.
Authentication ಎಂದರೆ ಸಂದೇಶವು ಸರಿಯಾದ ಪ್ರೊವೈಡರ್ನಿಂದ ಬಂದಿದೆ ಎಂದರ್ಥ. Validation ಎಂದರೆ ಸಂದೇಶದ ಒಳಗಿರುವ ಡೇಟಾ ಸರಿಯಾಗಿದೆ ಎಂದರ್ಥ.
ನೀವು ಕೇವಲ ಮೊದಲ ಹಂತವನ್ನು ಮಾತ್ರ ಮಾಡಿದರೆ, ನೀವು ಹಣವನ್ನು ಕಳೆದುಕೊಳ್ಳುತ್ತೀರಿ.
ಇತ್ತೀಚಿನ WordPress vulnerability (CVE-2026-9189) ಈ ತಪ್ಪನ್ನು ತೋರಿಸುತ್ತದೆ. Contact Form 7 PayPal ಮತ್ತು Stripe Add-on ಪಾವತಿ ಮೊತ್ತವನ್ನು (payment amounts) ಪರಿಶೀಲಿಸುವಲ್ಲಿ ವಿಫಲವಾಗಿದೆ.
ಒಬ್ಬ ದಾಳಿಕೋರ (attacker) ಇದನ್ನು ಹೇಗೆ ಬಳಸಿಕೊಳ್ಳಬಹುದು ಎಂಬುದು ಇಲ್ಲಿದೆ:
- ದಾಳಿಕೋರರು $2,000 ನ ಆರ್ಡರ್ ಅನ್ನು ರಚಿಸುತ್ತಾರೆ.
- ದಾಳಿಕೋರರು ನಿಜವಾದ $1 ಪಾವತಿಯನ್ನು ಮಾಡುತ್ತಾರೆ.
- ಅವರು $2,000 ನ ಆರ್ಡರ್ಗೆ ಹೊಂದಿಕೆಯಾಗುವಂತೆ ಇನ್ವಾಯ್ಸ್ ಸಂಖ್ಯೆಯನ್ನು (invoice number) ಹೊಂದಿಸುತ್ತಾರೆ.
- PayPal $1 ಪಾವತಿಗಾಗಿ ನಿಜವಾದ, ಪರಿಶೀಲಿಸಿದ ನೋಟಿಫಿಕೇಶನ್ ಅನ್ನು ಕಳುಹಿಸುತ್ತದೆ.
- ಪ್ಲಗಿನ್ (plugin) ಆ ಪರಿಶೀಲಿಸಿದ ಸಂದೇಶವನ್ನು ನೋಡಿ $2,000 ನ ಆರ್ಡರ್ ಅನ್ನು ಪಾವತಿಸಲಾಗಿದೆ (paid) ಎಂದು ಗುರುತಿಸುತ್ತದೆ.
ಪ್ಲಗಿನ್ ಸಂದೇಶ ಕಳುಹಿಸಿದವರನ್ನು (messenger) ನಂಬಿತು ಆದರೆ ಸಂದೇಶವನ್ನು ನಿರ್ಲಕ್ಷಿಸಿತು.
ಈ ತಪ್ಪನ್ನು ಮಾಡಬೇಡಿ. ನೀವು webhooks ನಿರ್ವಹಿಸುವಾಗ, ಈ ಹಂತಗಳನ್ನು ಅನುಸರಿಸಿ:
- signatures ಅಥವಾ shared secrets ಬಳಸಿ ಸಂದೇಶವನ್ನು Authenticate ಮಾಡಿ.
- ನಿಮ್ಮ ಡೇಟಾಬೇಸ್ನಲ್ಲಿರುವ ಆರ್ಡರ್ಗೆ ಅನುಗುಣವಾಗಿ ಮೊತ್ತ (amount) ಮತ್ತು ಕರೆನ್ಸಿಯನ್ನು (currency) ಹೊಂದಿಸಿ.
- ಸ್ವೀಕರಿಸುವ ಇಮೇಲ್ ನಿಮ್ಮ ಖಾತೆಗೆ ಹೊಂದಿಕೆಯಾಗುತ್ತದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸಿ.
- ಆರ್ಡರ್ ಅನ್ನು ಲಿಂಕ್ ಮಾಡಲು ಸರ್ವರ್-ಸೈಡ್ (server-side) ಮೌಲ್ಯವನ್ನು ಬಳಸಿ. ಕೇವಲ payload ನಲ್ಲಿ ಕಳುಹಿಸಲಾದ invoice ID ಅನ್ನು ಮಾತ್ರ ನಂಬಬೇಡಿ.
- ಡೂಪ್ಲಿಕೇಟ್ ಟ್ರಾನ್ಸಾಕ್ಷನ್ ಐಡಿಗಳನ್ನು (duplicate transaction IDs) ನಿರ್ಲಕ್ಷಿಸಲು idempotency ಬಳಸಿ.
- ಎಲ್ಲಾ ರಿಕ್ವೆಸ್ಟ್ಗಳಿಗಾಗಿ (requests) TLS verification ಅನ್ನು ಸಕ್ರಿಯವಾಗಿರಿಸಿ.
- Fail closed ಬಳಸಿ. ಯಾವುದೇ ಪರಿಶೀಲನೆ ವಿಫಲವಾದರೆ, ಎಲ್ಲವನ್ನೂ ನಿಲ್ಲಿಸಿ.
ನೀವು Contact Form 7 PayPal ಮತ್ತು Stripe Add-on ಆವೃತ್ತಿ (version) 2.4.9 ಅಥವಾ ಅದಕ್ಕಿಂತ ಹಳೆಯದನ್ನು ಬಳಸುತ್ತಿದ್ದರೆ, ಈಗಲೇ ಅಪ್ಡೇಟ್ ಮಾಡಿ. ಪಾವತಿಯಾಗದ ಪ್ರತಿಯೊಂದು ಆರ್ಡರ್ ಕೂಡ ಈ ದಾಳಿಕೆಗೆ ಗುರಿಯಾಗಬಹುದು.
ಯಾವಾಗಲೂ ಸಂದೇಶ ಕಳುಹಿಸುವವರನ್ನು (messenger) Authenticate ಮಾಡಿ, ನಂತರ ಡೇಟಾವನ್ನು ಪರಿಶೀಲಿಸಿ.
ಮೂಲ (Source): https://dev.to/nitishyaddala/authenticating-a-webhook-isnt-validating-it-a-payment-bypass-lesson-cve-2026-9189-248k