Để kiểm tra và chặn IP truy cập quá nhanh trong 1 phút, bạn có thể sử dụng một số kỹ thuật như:
Sử dụng session: Bạn có thể lưu trữ số lần truy cập của mỗi IP trong một biến session và kiểm tra nó sau mỗi lần truy cập. Nếu số lần truy cập vượt quá ngưỡng cho phép, bạn có thể chặn IP đó.
Sử dụng Redis: Redis là một hệ thống lưu trữ dữ liệu in-memory và rất phù hợp để lưu trữ các thông tin tạm thời như số lần truy cập của mỗi IP. Bạn có thể sử dụng Redis để lưu trữ thông tin này và kiểm tra nó sau mỗi lần truy cập.
Dưới đây là một ví dụ về mã PHP sử dụng session để kiểm tra và chặn IP truy cập quá nhanh trong 1 phút:
PHP
<?php
// Lấy địa chỉ IP của người dùng
$ip = $_SERVER['REMOTE_ADDR'];
// Tăng số lần truy cập của IP này trong biến session
if (!isset($_SESSION['access_count'][$ip])) { $_SESSION['access_count'][$ip] = 1;
} else {
$_SESSION['access_count'][$ip]++;
}
// Kiểm tra xem IP này đã truy cập quá nhanh chưa
if ($_SESSION['access_count'][$ip] > 10) { // Giới hạn số lần truy cập là 10 trong 1 phút
// Chặn IP này
header("HTTP/1.1 403 Forbidden"); echo "Bạn đã truy cập quá nhanh. Vui lòng thử lại sau.";
}
// Xử lý yêu cầu của người dùng
// …
Trong ví dụ này, chúng ta lưu trữ số lần truy cập của mỗi IP trong biến session và tăng giá trị này sau mỗi lần truy cập. Sau đó, chúng ta kiểm tra xem số lần truy cập của IP này có vượt quá giới hạn cho phép hay không (trong ví dụ này là 10 lần trong 1 phút). Nếu vượt quá, chúng ta chặn IP này bằng cách trả về mã HTTP 403 và thông báo cho người dùng biết rằng họ đã truy cập quá nhanh.