- vừa được xem lúc

Giải quyết các cuộc tấn công DDOS bằng Redis Rate Limiting

0 0 1

Người đăng: Vinh Phạm

Theo Viblo Asia

Trong hướng dẫn này, tôi sẽ giúp các bạn khám phá cách phòng ngừa hiệu quả để chống lại các cuộc tấn công từ chối dịch vụ phân tán (DDoS) bằng cách sử dụng Redis Rate Limiting với Upstash Redis. Cuối cùng, bạn sẽ có một cơ chế mạnh mẽ để bảo vệ ứng dụng của mình khỏi lưu lượng truy cập quá mức và đảm bảo tính khả dụng của các ứng dụng. Cùng chú ý theo dõi nhé.

Cài đặt Upstash Rate Limiting SDK

Trước tiên, chúng ta hãy bắt đầu bằng cách cài đặt các gói cần thiết cho Upstash Rate Limiting.

npm install @upstash/ratelimit @upstash/redis

Cấu hình biến môi trường

Tạo cơ sở dữ liệu Redis bằng Upstash Console hoặc Upstash CLI . Chọn các vùng gần nhất với vùng triển khai của bạn để giảm thiểu độ trễ. Đặt UPSTASH_REDIS_REST_URL và UPSTASH_REDIS_REST_TOKEN để làm biến môi trường trong nền tảng triển khai của bạn.

# .env UPSTASH_REDIS_REST_URL=<YOUR_URL>
UPSTASH_REDIS_REST_TOKEN=<YOUR_TOKEN>

Khởi tạo Rate Limiter SDK

Chúng ta sẽ bắt đầu khởi tạo SDK Rate Limiter để xác định các quy tắc giới hạn tốc độ cho các yêu cầu đến. Mã bên dưới thiết lập một bộ giới hạn tốc độ cho phép 10 yêu cầu trong 10 giây.

import { Redis } from "@upstash/redis"
import { Ratelimit } from "@upstash/ratelimit" // Create a new ratelimiter, that allows 10 requests per 10 seconds
const ratelimit = new Ratelimit({ redis: Redis.fromEnv(), limiter: Ratelimit.slidingWindow(10, "10 s")
})

Triển khai Rate Limiting với mã định danh duy nhất

Để áp dụng giới hạn tốc độ cho một điểm cuối hoặc hành động cụ thể, bạn sẽ cần một mã định danh duy nhất. Trong đoạn mã này, mã định danh được đặt thành "API". Thông thường, bạn có thể sử dụng mã định danh làm Địa chỉ IP yêu cầu hoặc email của người dùng, ví dụ. Nếu vượt quá giới hạn tốc độ, một thông báo sẽ được trả về máy khách, ngăn chặn các yêu cầu quá mức. Nếu không, ứng dụng sẽ thực hiện hành động theo ý định.

const identifier = "api" const { success } = await ratelimit.limit(identifier) if (!success) { // Return with custom message for rate limiting
} // Perform your usual operations

Hoàn thành

Bằng cách làm theo các bước này, bạn đã biết cách bảo vệ ứng dụng của mình khỏi các cuộc tấn công DDoS bằng Redis Rate Limiting với Upstash. Điều này có thể tăng cường đáng kể tính bảo mật và khả năng phục hồi của các dịch vụ web của bạn, đảm bảo chúng vẫn khả dụng ngay cả trong thời gian lưu lượng truy cập cao. Chúc các bạn thành công!!!

Bình luận

Bài viết tương tự

- vừa được xem lúc

Caching đại pháp 2: Cache thế nào cho hợp lý?

Caching rất dễ. Mình không nói đùa đâu, caching rất là dễ. Ai cũng có thể làm được chỉ sau 10 phút đọc tutorial. Nó cũng giống như việc đứa trẻ lên 3 đã có thể cầm bút để vẽ vậy.

0 0 119

- vừa được xem lúc

Caching đại pháp 1: Nấc thang lên level của developer

Bí quyết thành công trong việc đáp ứng hệ thống triệu user của những công ty lớn (và cả công ty nhỏ). Tại sao caching lại là kỹ thuật tối quan trọng để phù phép ứng dụng rùa bò của chúng ta thành siêu phẩm vạn người mê.

0 0 76

- vừa được xem lúc

Cache dữ liệu Nodejs với Redis

Một tí gọi là lý thuyết để anh em tham khảo. Cache là gì. Lợi ích của việc cache data. .

0 0 106

- vừa được xem lúc

Nguyên tắc hoạt động của redis server

Sự ra đời của Redis. . Câu chuyện bắt đầu khi tác giả của Redis, Salvatore Sanfilippo. (nickname: antirez), cố gắng làm những công việc gần như là không.

0 0 91

- vừa được xem lúc

Viết ứng dụng chat realtime với Laravel, VueJS, Redis và Socket.IO, Laravel Echo

Xin chào tất cả các bạn, đây là một trong những bài post đầu tiên của mình. Sau bao năm toàn đi đọc các blog tích luỹ được chút kiến thức của các cao nhân trên mạng.

0 0 911

- vừa được xem lúc

Tìm hiểu tổng quan về Redis

1. Lời mở đầu.

0 0 360