🛡️ Cheatsheet: Chống lạm dụng API: rate limit, bot và chi phí AI

By Better Wise

Tip: Nguyên tắc xuyên suốt: đặt giới hạn trước khi mở cửa. Mọi endpoint tốn tiền hoặc tốn tài nguyên phải có trần rõ ràng trước khi có traffic thật.


Bảng tra nhanh: dùng gì cho việc gì

Vấn đề Công cụ Phạm vi Chặn ở đâu
Một IP spam dồn dập Rate limit theo IP IP Trước khi vào handler
Một user gọi quá nhiều Rate limit theo user user id / API key Trước khi vào handler
Tổng dùng trong tháng Quota theo user user id Trước khi gọi dịch vụ tốn tiền
Bot tự động đăng ký / spam form Captcha + chống bot session / IP Ở endpoint công khai
Request rác tốn CPU / token Validate input sớm request body Ngay đầu handler
Hóa đơn AI tăng vọt Budget + cảnh báo toàn hệ thống / user Trước và sau mỗi lần gọi

Thứ tự lớp bảo vệ (chạy từ ngoài vào trong):

flowchart TD
    Req["📥 Request vào"] --> IP["🌐 Rate limit theo IP"]
    IP --> Auth["🔑 Xác thực user"]
    Auth --> UR["👤 Rate limit theo user"]
    UR --> Quota["📊 Kiểm tra quota"]
    Quota --> Val["✅ Validate input"]
    Val --> Bot["🤖 Captcha / chống bot nếu cần"]
    Bot --> Budget["💰 Kiểm tra budget còn lại"]
    Budget --> Call["☁️ Gọi API AI bên thứ ba"]
    Call --> Log["🧾 Ghi log chi phí"]

Module 1: Kiểm soát lưu lượng và chống lạm dụng API

1.1 Rate limiting theo IP và theo user

Thuật toán Cách hoạt động Khi dùng
Fixed window Đếm trong khung cố định (vd 60s) Đơn giản, chấp nhận burst ở biên
Sliding window Cửa sổ trượt theo thời gian Mượt hơn, hay dùng cho API công khai
Token bucket Nạp token đều, tiêu khi gọi Cho phép burst có kiểm soát
Leaky bucket Xả đều theo tốc độ cố định Làm phẳng lưu lượng

This cheatsheet is premium content. Sign in and purchase the course to view the full content. Sign in