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

By Better Wise · Generated by Everwise

Đặt giới hạn gọi API, chặn bot cơ bản và kiểm soát chi phí API AI để sản phẩm không bị lạm dụng hay vượt ngân sách.

- **Level:** Beginner
- **Goal:** Build a project
- **Language:** Vietnamese
- **Focus:** [rate limiting và quota](/courses?q=rate%20limiting%20v%C3%A0%20quota), [chống bot cơ bản](/courses?q=ch%E1%BB%91ng%20bot%20c%C6%A1%20b%E1%BA%A3n), [kiểm soát chi phí API AI](/courses?q=ki%E1%BB%83m%20so%C3%A1t%20chi%20ph%C3%AD%20API%20AI), [cảnh báo ngân sách](/courses?q=c%E1%BA%A3nh%20b%C3%A1o%20ng%C3%A2n%20s%C3%A1ch)
- **Prior knowledge:** Biết viết API đơn giản, Đã từng gọi API bên thứ ba
- **Practice:** Exercises + capstone project
- **Time:** ~2.5h
- **Voice:** một founder từng nhận hóa đơn API trên trời, dạy bằng ví dụ chi phí cụ thể và luôn nhắc 'đặt giới hạn trước khi mở cửa'
- **Not covered:** WAF nâng cao, phát hiện gian lận bằng ML, hạ tầng chống DDoS chuyên sâu

## Bạn sẽ đạt được gì

Sau khóa này, bạn sẽ tự tay dựng được một lớp bảo vệ cho API của mình và biết cách giữ hóa đơn API AI không vượt khỏi tầm kiểm soát. Cụ thể, bạn sẽ có khả năng:

- Cấu hình rate limiting theo IP và theo user, hiểu khi nào dùng cái nào và vì sao cần cả hai.
- Đặt quota theo user và chặn request rác ngay từ khâu validate input để không tốn tài nguyên xử lý.
- Gắn captcha và các biện pháp chống bot cơ bản vào những endpoint dễ bị lạm dụng.
- Đo, dự phóng chi phí khi gọi API AI bên thứ ba dựa trên số token và số lần gọi thực tế.
- Đặt ngân sách và thiết lập cảnh báo khi chi phí vượt ngưỡng, để không bị bất ngờ khi mở hóa đơn.
- Ghép tất cả lại thành một lớp bảo vệ hoàn chỉnh kèm bảng theo dõi chi phí cho API.

Đây là khóa học làm dự án. Bạn không học lý thuyết suông rồi bỏ đó, mà mỗi bài là một mảnh ghép vào cùng một hệ thống bạn đang xây.

## Khóa học này dành cho ai

Khóa này ở mức beginner và được thiết kế cho người đã có nền tảng tối thiểu:

- Bạn biết viết một API đơn giản (một vài endpoint, nhận request, trả response).
- Bạn đã từng gọi một API bên thứ ba, ví dụ gọi API AI để lấy câu trả lời.

Bạn không cần biết trước về rate limiting, quota hay cách tính chi phí token. Nếu bạn đã từng nhìn hóa đơn API và tự hỏi "sao lại nhiều thế này", bạn chính là người khóa này viết cho.

## Lộ trình khóa học

Khóa gồm 2 module với 8 bài, đi từ chặn lưu lượng đến kiểm soát tiền.

**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.** Bạn đặt giới hạn số request theo thời gian, phân biệt giới hạn theo IP (chặn kẻ gọi hàng loạt) và theo user (công bằng cho người dùng thật).
- **1.2 Quota theo user và validate input sớm.** Bạn gán hạn mức cho từng user và học cách từ chối request sai ngay từ đầu để không đốt tài nguyên xử lý phía sau.
- **1.3 Captcha và chống bot cơ bản.** Bạn thêm một lớp xác minh cho các endpoint dễ bị bot dò, cùng vài dấu hiệu nhận biết traffic bất thường.
- **1.4 Checkpoint: rate limiting, quota và chống bot.** Bạn kiểm tra lại toàn bộ lớp chặn lưu lượng đã dựng và xử lý các tình huống còn hở.

**Module 2: Kiểm soát chi phí API AI bên thứ ba**

- **2.1 Đo và dự phóng chi phí khi gọi API AI bên thứ ba.** Bạn tính chi phí từ số token và số lần gọi, rồi dự phóng xem một tháng vận hành sẽ tốn bao nhiêu.
- **2.2 Đặt ngân sách và cảnh báo khi vượt.** Bạn đặt hạn mức chi tiêu và cấu hình cảnh báo để biết ngay khi chạm ngưỡng, thay vì đợi đến cuối tháng.
- **2.3 Project: dựng lớp bảo vệ và bảng theo dõi chi phí cho API.** Bạn ghép mọi thứ đã học thành một hệ thống chạy được, có bảng theo dõi chi phí rõ ràng.
- **2.4 Checkpoint: chi phí, ngân sách và cảnh báo.** Bạn rà lại phần kiểm soát chi phí và kiểm tra rằng cảnh báo thực sự kích hoạt đúng lúc.

## Khóa học vận hành thế nào

Mỗi bài thường có ba phần: giải thích ngắn gọn một khái niệm, ví dụ chi phí cụ thể để bạn thấy con số thật, rồi bài tập nhỏ áp dụng ngay vào API của bạn. Xen giữa các module là checkpoint quiz để bạn tự kiểm tra trước khi đi tiếp.

Tổng thời lượng khoảng **150 phút cho 8 bài**, tức trung bình chưa tới 20 phút mỗi bài. Bạn có thể học liền một mạch trong một buổi tối, hoặc chia thành 2 đến 3 buổi.

Cách dùng khóa:

- **Nên đi tuần tự.** Các bài được xếp theo thứ tự cố ý: bạn cần biết rate limiting trước khi đặt quota, và cần biết đo chi phí trước khi đặt ngân sách. Nhảy cóc dễ làm dự án cuối bị thiếu mảnh.
- **Có thể lướt nhanh phần bạn đã biết.** Nếu bạn đã quen rate limiting theo IP, đọc lướt bài 1.1 rồi tập trung vào phần theo user. Nhưng đừng bỏ qua checkpoint, vì nó cho biết bạn có thật sự nắm phần đó không.
- **Làm bài tập ngay trên code của bạn.** Mỗi bài tập được thiết kế để gắn vào chính API bạn đang có, nên cuối khóa bạn đã có sản phẩm chạy được chứ không phải bài tập mẫu.

Một nguyên tắc xuyên suốt khóa: đặt giới hạn trước khi mở cửa. Mọi bài đều xoay quanh việc dựng hàng rào trước khi traffic và hóa đơn kịp tăng.

## Dự án của khóa học

Dự án tên là **"Lớp bảo vệ API và bảng theo dõi chi phí"**. Đây là một sợi chỉ liên tục chạy qua cả khóa, không phải các bài tập rời rạc.

Bạn sẽ xây, từ đầu đến cuối, một lớp bảo vệ nằm trước API của mình, gồm:

- Bộ rate limiting theo IP và theo user, có quota riêng cho từng người dùng.
- Bước validate input chặn request rác trước khi chạm tới xử lý tốn kém.
- Lớp captcha và chống bot cho các endpoint nhạy cảm.
- Phần đo và dự phóng chi phí cho các lần gọi API AI bên thứ ba.
- Ngân sách cùng cảnh báo tự động khi chi phí vượt ngưỡng.
- Một bảng theo dõi chi phí để bạn nhìn thấy tiền đang đi đâu.

Các bài nuôi dự án theo thứ tự: bài 1.1 và 1.2 dựng phần chặn lưu lượng và quota, bài 1.3 thêm lớp chống bot, bài 1.4 kiểm tra lại lớp bảo vệ. Sang module 2, bài 2.1 và 2.2 lo phần đo chi phí, ngân sách và cảnh báo, còn bài 2.3 là lúc bạn lắp ráp tất cả thành một hệ thống hoàn chỉnh. Bài 2.4 kiểm tra lần cuối.

Kết thúc khóa, bạn có một API được bảo vệ thật sự và một bảng chi phí đủ để trả lời câu hỏi quan trọng nhất: tháng này mình sẽ tiêu bao nhiêu, và điều gì sẽ xảy ra nếu ai đó cố gọi quá mức.

## Contents

- **🚦 Kiểm soát lưu lượng và chống lạm dụng API**
  - [🚦 Rate limiting theo IP và theo user](https://everwise.study/courses/chong-lam-dung-api-rate-limit-bot-va-chi-phi-ai/rate-limiting-theo-ip-va-theo-user.md)
  - [📊 Quota theo user và validate input sớm để tiết kiệm tài nguyên](https://everwise.study/courses/chong-lam-dung-api-rate-limit-bot-va-chi-phi-ai/quota-theo-user-va-validate-input-som.md) (sign-in required)
  - [🤖 Captcha và chống bot cơ bản](https://everwise.study/courses/chong-lam-dung-api-rate-limit-bot-va-chi-phi-ai/captcha-va-chong-bot-co-ban.md)
  - [✅ Checkpoint: rate limiting, quota và chống bot](https://everwise.study/courses/chong-lam-dung-api-rate-limit-bot-va-chi-phi-ai/checkpoint-rate-limiting-quota-chong-bot.md)
- **💰 Kiểm soát chi phí API AI bên thứ ba**
  - [🧮 Đo và dự phóng chi phí khi gọi API AI bên thứ ba](https://everwise.study/courses/chong-lam-dung-api-rate-limit-bot-va-chi-phi-ai/do-va-du-phong-chi-phi-api-ai.md)
  - [🔔 Đặt ngân sách và cảnh báo khi vượt](https://everwise.study/courses/chong-lam-dung-api-rate-limit-bot-va-chi-phi-ai/dat-ngan-sach-va-canh-bao-khi-vuot.md)
  - [🛠️ Project: dựng lớp bảo vệ và bảng theo dõi chi phí cho API](https://everwise.study/courses/chong-lam-dung-api-rate-limit-bot-va-chi-phi-ai/project-lop-bao-ve-va-bang-theo-doi-chi-phi-api.md) (premium content)
  - [✅ Checkpoint: chi phí, ngân sách và cảnh báo](https://everwise.study/courses/chong-lam-dung-api-rate-limit-bot-va-chi-phi-ai/checkpoint-chi-phi-ngan-sach-va-canh-bao.md) (premium content)
- [Course cheatsheet](https://everwise.study/courses/chong-lam-dung-api-rate-limit-bot-va-chi-phi-ai/cheatsheet.md) (premium content)
