×

Tạo CAPTCHA đơn giản để ngăn chặn bot tự động trong PHP

Trong thời đại kỹ thuật số ngày nay, việc bảo vệ các trang web khỏi tấn công từ các bot tự động trở thành một nhiệm vụ vô cùng quan trọng. Một trong những biện pháp bảo mật hiệu quả được áp dụng rộng rãi là sử dụng CAPTCHA - một phương pháp xác minh giúp phân biệt người dùng thật với bot. Trong bài viết này, chúng ta sẽ tìm hiểu cách tạo một CAPTCHA cơ bản bằng cách sử dụng ngôn ngữ lập trình phổ biến: PHP.

Khởi Tạo CAPTCHA

Để bắt đầu, chúng ta sẽ cần thiết lập một đoạn mã PHP tạo ra hình ảnh CAPTCHA và lưu nó vào máy chủ. Dưới đây là một ví dụ đơn giản mà bạn có thể tham khảo:

<?php
session_start();

$width = 100;
$height = 40;
$image = imagecreate($width, $height);

// Set background color
$background_color = imagecolorallocate($image, 255, 255, 255);

// Set text color
$text_color = imagecolorallocate($image, 0, 0, 0);

// Generate random string
$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
$string_length = 6;
$captcha_string = '';
for ($i = 0; $i < $string_length; $i++) {
    $captcha_string .= $chars[rand(0, strlen($chars) - 1)];
}

// Store the captcha string in session
$_SESSION['captcha'] = $captcha_string;

// Add the string to the image
imagestring($image, 5, 10, 10, $captcha_string, $text_color);

// Output the image
header('Content-type: image/png');
imagepng($image);

// Free memory
imagedestroy($image);
?>

Hiển Thị CAPTCHA Trên Trang Web

Sau khi đã tạo xong hình ảnh CAPTCHA, bước tiếp theo là hiển thị nó trên trang web và tạo một form để người dùng nhập mã xác nhận:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Simple CAPTCHA</title>
</head>
<body>
    <form action="verify.php" method="post">
        <p>
            <img src="captcha.php" alt="CAPTCHA Image">
        </p>
        <p>
            <input type="text" name="captcha" placeholder="Enter CAPTCHA">
        </p>
        <p>
            <input type="submit" value="Submit">
        </p>
    </form>
</body>
</html>

Xác Minh CAPTCHA

Khi người dùng nhập mã xác nhận và gửi form, chúng ta cần kiểm tra xem mã nhập có khớp với mã đã lưu trong session hay không. Dưới đây là đoạn mã PHP để xác minh điều này:

<?php
session_start();

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $user_captcha = $_POST['captcha'];
    
    if (strcmp($_SESSION['captcha'], $user_captcha) === 0) {
        echo 'CAPTCHA validation successful!';
    } else {
        echo 'Invalid CAPTCHA. Please try again.';
    }
}
?>

Kết Luận

Sử dụng một CAPTCHA cơ bản là một phương pháp hiệu quả để ngăn chặn các bot tự động tấn công và spam trang web của bạn. Bằng cách hiểu rõ các bước tạo, hiển thị và xác minh CAPTCHA như đã trình bày ở trên, bạn có thể dễ dàng tích hợp giải pháp này vào ứng dụng PHP của mình. Hãy áp dụng các kỹ thuật này để bảo vệ trang web của bạn khỏi các mối đe dọa tiềm ẩn và đảm bảo trải nghiệm an toàn cho người dùng.

Comments