𝗔𝘂𝘁𝗵𝗲𝗻𝘁𝗶𝗰𝗮𝘁𝗶𝗻𝗴 𝗮 𝗪𝗲𝗯𝗵𝗼𝗼𝗸 𝗜𝘀𝗻'𝘁 𝗩𝗮𝗹𝗶𝗱𝗮𝘁𝗶𝗻𝗴 𝗜𝘁
ਬਹੁਤ ਸਾਰੇ ਡਿਵੈਲਪਰ ਪ੍ਰੋਡਕਸ਼ਨ ਵਿੱਚ ਇੱਕ ਖ਼ਤਰਨਾਕ ਬੱਗ (bug) ਭੇਜ ਦਿੰਦੇ ਹਨ। ਉਹ ਪ੍ਰਮਾਣਿਕਤਾ (authentication) ਨੂੰ ਪੁਸ਼ਟੀਕਰਨ (validation) ਸਮਝਣ ਦੀ ਗਲਤੀ ਕਰਦੇ ਹਨ।
ਪ੍ਰਮਾਣਿਕਤਾ (Authentication) ਦਾ ਮਤਲਬ ਹੈ ਕਿ ਸੁਨੇਹਾ ਸਹੀ ਪ੍ਰਦਾਤਾ (provider) ਤੋਂ ਆਇਆ ਹੈ। ਪੁਸ਼ਟੀਕਰਨ (Validation) ਦਾ ਮਤਲਬ ਹੈ ਕਿ ਸੁਨੇਹੇ ਦੇ ਅੰਦਰ ਦਾ ਡੇਟਾ ਸਹੀ ਹੈ।
ਜੇਕਰ ਤੁਸੀਂ ਸਿਰਫ਼ ਪਹਿਲਾ ਕਦਮ ਚੁੱਕਦੇ ਹੋ, ਤਾਂ ਤੁਸੀਂ ਪੈਸੇ ਗੁਆ ਸਕਦੇ ਹੋ।
ਇੱਕ ਹਾਲੀਆ WordPress ਕਮਜ਼ੋਰੀ (CVE-2026-9189) ਇਸ ਗਲਤੀ ਨੂੰ ਦਰਸਾਉਂਦੀ ਹੈ। Contact Form 7 PayPal ਅਤੇ Stripe Add-on ਭੁਗਤਾਨ ਦੀ ਰਕਮ ਦੀ ਜਾਂਚ ਕਰਨ ਵਿੱਚ ਅਸਫਲ ਰਿਹਾ।
ਇੱਕ ਹਮਲਾਵਰ ਇਸ ਤਰ੍ਹਾਂ ਇਸਦਾ ਫਾਇਦਾ ਉਠਾਉਂਦਾ ਹੈ:
- ਇੱਕ ਹਮਲਾਵਰ $2,000 ਦਾ ਆਰਡਰ ਬਣਾਉਂਦਾ ਹੈ।
- ਹਮਲਾਵਰ $1 ਦਾ ਅਸਲੀ ਭੁਗਤਾਨ ਕਰਦਾ ਹੈ।
- ਉਹ ਇਨਵੌਇਸ ਨੰਬਰ ਨੂੰ $2,000 ਦੇ ਆਰਡਰ ਨਾਲ ਮਿਲਾਉਣ ਲਈ ਸੈੱਟ ਕਰਦੇ ਹਨ।
- PayPal $1 ਦੇ ਭੁਗਤਾਨ ਲਈ ਇੱਕ ਅਸਲੀ, ਤਸਦੀਕਸ਼ੁਦਾ ਨੋਟੀਫਿਕੇਸ਼ਨ ਭੇਜਦਾ ਹੈ।
- ਪਲੱਗਇਨ ਤਸਦੀਕਸ਼ੁਦਾ ਸੁਨੇਹਾ ਦੇਖਦਾ ਹੈ ਅਤੇ $2,000 ਦੇ ਆਰਡਰ ਨੂੰ 'ਭੁਗਤਾਨ ਹੋ ਗਿਆ' (paid) ਵਜੋਂ ਮਾਰਕ ਕਰ ਦਿੰਦਾ ਹੈ।
ਪਲੱਗਇਨ ਨੇ ਸੁਨੇਹਾ ਭੇਜਣ ਵਾਲੇ (messenger) 'ਤੇ ਭਰੋਸਾ ਕੀਤਾ ਪਰ ਸੁਨੇਹੇ (message) ਨੂੰ ਨਜ਼ਰਅੰਦਾਜ਼ ਕਰ ਦਿੱਤਾ।
ਇਹ ਗਲਤੀ ਨਾ ਕਰੋ। ਜਦੋਂ ਤੁਸੀਂ webhooks ਨੂੰ ਸੰਭਾਲਦੇ ਹੋ, ਤਾਂ ਇਹਨਾਂ ਕਦਮਾਂ ਦੀ ਪਾਲਣਾ ਕਰੋ:
- ਸਿਗਨੇਚਰ (signatures) ਜਾਂ ਸਾਂਝੇ ਸੀਕਰੇਟਸ (shared secrets) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸੁਨੇਹੇ ਨੂੰ ਪ੍ਰਮਾਣਿਤ ਕਰੋ।
- ਆਪਣੇ ਡੇਟਾਬੇਸ ਵਿੱਚ ਆਰਡਰ ਨਾਲ ਰਕਮ ਅਤੇ ਕਰੰਸੀ ਦਾ ਮੇਲ ਕਰੋ।
- ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ ਪ੍ਰਾਪਤਕਰਤਾ ਈਮੇਲ ਤੁਹਾਡੇ ਖਾਤੇ ਨਾਲ ਮੇਲ ਖਾਂਦੀ ਹੈ।
- ਆਰਡਰ ਨੂੰ ਜੋੜਨ ਲਈ ਸਰਵਰ-ਸਾਈਡ ਵੈਲਯੂ ਦੀ ਵਰਤੋਂ ਕਰੋ। ਸਿਰਫ਼ ਪੇਲੋਡ (payload) ਵਿੱਚ ਭੇਜੇ ਗਏ ਇਨਵੌਇਸ ID 'ਤੇ ਭਰੋਸਾ ਨਾ ਕਰੋ।
- ਡੁਪਲੀਕੇਟ ਟ੍ਰਾਂਜੈਕਸ਼ਨ ID ਨੂੰ ਨਜ਼ਰਅੰਦਾਜ਼ ਕਰਨ ਲਈ idempotency ਦੀ ਵਰਤੋਂ ਕਰੋ।
- ਸਾਰੀਆਂ ਬੇਨਤੀਆਂ (requests) ਲਈ TLS ਵੈਰੀਫਿਕੇਸ਼ਨ ਨੂੰ ਸਰਗਰਮ ਰੱਖੋ।
- Fail closed ਰੱਖੋ। ਜੇਕਰ ਕੋਈ ਵੀ ਜਾਂਚ ਅਸਫਲ ਹੁੰਦੀ ਹੈ, ਤਾਂ ਸਭ ਕੁਝ ਰੋਕ ਦਿਓ।
ਜੇਕਰ ਤੁਸੀਂ Contact Form 7 PayPal ਅਤੇ Stripe Add-on ਦਾ ਵਰਜ਼ਨ 2.4.9 ਜਾਂ ਪੁਰਾਣਾ ਵਰਤ ਰਹੇ ਹੋ, ਤਾਂ ਇਸਨੂੰ ਹੁਣੇ ਅਪਡੇਟ ਕਰੋ। ਹਰ ਅਣਭੁਗਤਾਨ (unpaid) ਆਰਡਰ ਇਸ ਹਮਲੇ ਦਾ ਨਿਸ਼ਾਨਾ ਹੈ।
ਹਮੇਸ਼ਾ ਸੁਨੇਹਾ ਭੇਜਣ ਵਾਲੇ ਨੂੰ ਪ੍ਰਮਾਣਿਤ ਕਰੋ, ਫਿਰ ਡੇਟਾ ਦੀ ਜਾਂਚ ਕਰੋ।