Xác thực Webhook không đồng nghĩa với việc kiểm chứng dữ liệu

Nhiều lập trình viên đã đưa một lỗi nguy hiểm lên môi trường production. Họ nhầm lẫn giữa xác thực (authentication) và kiểm chứng (validation).

Xác thực có nghĩa là tin nhắn đến từ đúng nhà cung cấp. Kiểm chứng có nghĩa là dữ liệu bên trong tin nhắn là chính xác.

Nếu bạn chỉ thực hiện bước đầu tiên, bạn sẽ mất tiền.

Một lỗ hổng WordPress gần đây (CVE-2026-9189) đã cho thấy sai lầm này. Add-on PayPal và Stripe của Contact Form 7 đã không kiểm tra số tiền thanh toán.

Dưới đây là cách kẻ tấn công khai thác lỗi này:

Plugin đã tin tưởng người đưa tin nhưng lại bỏ qua nội dung tin nhắn.

Đừng mắc phải sai lầm này. Khi xử lý webhook, hãy làm theo các bước sau:

Nếu bạn đang sử dụng Contact Form 7 PayPal and Stripe Add-on phiên bản 2.4.9 hoặc cũ hơn, hãy cập nhật ngay lập tức. Mọi đơn hàng chưa thanh toán đều là mục tiêu của lỗ hổng này.

Luôn xác thực người đưa tin, sau đó mới kiểm tra dữ liệu.

Nguồn: https://dev.to/nitishyaddala/authenticating-a-webhook-isnt-validating-it-a-payment-bypass-lesson-cve-2026-9189-248k