GitHub thêm 48 IP webhook: danh sách cho phép vẫn cần kiểm tra chữ ký

Dev
Lượt xem 3

Pull request đã mở nhưng bot triển khai im lặng. Có thể yêu cầu bị tường lửa chặn trước khi đến ứng dụng. Thông báo ngày 29/10 của GitHub liên quan đến chính đường đi vào này.

Ba dải bổ sung ở phía nhận

CIDR mới là 9.234.98.160/28, 9.234.98.176/28 và 9.234.106.48/28. Chúng áp dụng cho webhook github.com ở mọi gói, gồm GitHub Enterprise Cloud. Hãy thêm vào danh sách tĩnh, giữ lại các dải hiện có.

Mỗi /28 chứa 16 địa chỉ, tổng cộng 48. Hình là phép tính thực sự chạy cục bộ bằng Python ipaddress, không phải số tài khoản hay máy chủ. GitHub cho biết không cần thay đổi riêng nếu danh sách đã được cập nhật qua hooks của GET /meta.

Hình tự tạo từ phép tính Python đã chạy: ba tiền tố /28 chứa tổng cộng 48 địa chỉ.
Hình tự tạo từ phép tính Python đã chạy: ba tiền tố /28 chứa tổng cộng 48 địa chỉ.

IP và chữ ký trả lời hai câu hỏi khác nhau

Danh sách quyết định mạng nào được tới máy nhận. Dùng hooks, không phải actions vốn mô tả đường khác của runner. Nhận sự kiện và gọi API ngoài từ CI là hai hướng khác nhau.

Sau đó kiểm tra X-Hub-Signature-256 bằng secret của webhook. GitHub tạo HMAC-SHA256 từ secret và nội dung. Tính trên byte gốc rồi so sánh thời gian hằng với hmac.compare_digest hoặc crypto.timingSafeEqual. IP được phép không thay bước này.

JSON cùng nghĩa vẫn có thể khác byte

Viết lại {"action":"opened"} thành {"action": "opened"} thêm một dấu cách. Ý nghĩa giữ nguyên nhưng chữ ký có thể khác. Ví dụ chạy cục bộ dùng secret minh họa công khai cho True với byte giống nhau và False khi thêm dấu cách. Đây không phải bản ghi webhook GitHub thật.

Ví dụ HMAC chạy cục bộ với secret minh họa công khai: một dấu cách đổi byte. Không phải ảnh ghi webhook thật.
Ví dụ HMAC chạy cục bộ với secret minh họa công khai: một dấu cách đổi byte. Không phải ảnh ghi webhook thật.

Giữ nội dung thô trước khi biến đổi và kiểm tra thay đổi từ proxy hay framework. Đưa secret vào URL payload sẽ mở thêm đường lộ thông tin. Hãy giữ trong cấu hình máy chủ an toàn.

Khôi phục mà không lặp lại việc đã xong

Sau khi sửa mạng, xem các lần gửi thất bại và gửi lại phần cần thiết. X-GitHub-Delivery giữ nguyên khi yêu cầu gửi lại. Phân biệt việc hoàn tất với lỗi có thể tiếp tục; bỏ mọi ID từng thấy cũng có thể chặn khôi phục.

GitHub khuyến nghị trả 2XX trong mười giây và dùng hàng đợi cho xử lý dài. Nối xác minh chữ ký với tiếp nhận bền vững và trạng thái có thể thử lại. Ba CIDR nhờ đó nằm trong đường đi từ nhận, kiểm tra đến hoàn tất.

Nguồn và đọc thêm

GitHub Changelog · 2026-10-29

GitHub Docs · Meta API

GitHub Docs · Webhook signatures

GitHub Docs · Webhook best practices