Trong bài này , chúng ta nối tìm hiểu biện pháp tạo dãy số không hẹn mà có để chống tiến công flood dữ liệu. Hoặc ai đó cố tình spam khiến cơ sở dữ liệu của mọi người không thể xử lí tiếp được.
Thứ nhất , chúng ta tiến hành tạo form HTML đơn giản để thực thi thao tác nhập liệu trong lập trình PHP
chúng ta để ý phần hình ảnh , tại đây tôi truyền đường dẫn chính là kết liên tới trang random_image.php. Trang này cần thực thi nghề nghiệp tạo ra những bức hình có dãy số ngẫu nhiên để phần nhập liệu của người làm việc tham chiếu tới.
Tiếp theo , anh khởi tạo file random_image.php để lấy ra dãy số ngẫu nhiên và nảy sinh chúng ngay trên tấm hình cho người truy cập nhập liệu.
Để làm được điều đó. Chúng ta nên khởi tạo session và lưu dãy số nhập liệu đó vào session của mình , sau thời gian ấy so khớp với trang form bên kia.
Bây giờ chị dùng hàm md5 và ran để mã hóa các ký tự bao gồm số và chữ cái. Khi dùng hàm md5( ) ký tự nảy sinh sẽ lên tới 32 ký tự. Và bạn chỉ lấy duy nhất 5 ký tự từ chuỗi mã hóa đó bằng hàm substr. Tiếp kiến ta lưu đoạn mã hóa này trong session cụ thể $_SESSION['security_code'] , để tại trang form ta phải sử dụng so sánh với phần nhập liệu của người sử dụng.
Xem thêm : cú pháp trong PHP
Vậy cần phải đoạn code dưới nên giải quyết các cảnh huống này.
$md5_hash = md5( rand( 0 , 999 ) );
$security_code = substr( $md5_hash , 15 , 5 );
$_SESSION["security_code"] = $security_code;
?>
Kế đến ta khởi tạo tấm hình với chiều rộng và chiều cao mà ta Xây dựng thông qua hàm ImageCreate( ). Và nối khai báo 2 màu Ấy là trắng và đen bằng hàm ImageColorAllocate( $image , red , green , blue ). Hàm này cần phải tạo ra một màu sắc từ hệ màu RGB trên tấm hình mà chị vừa khởi tạo.
tiếp kiến ta đổ background của tấm hình nên là màu đen và chữ xuất hiện trên tấm hình cần là màu trắng bằng hàm ImageFill( ) và hàm ImageString( ). Hàm ImageString có một số đối số cơ bản như sau: ImageString( $image , 5 , 30 , 6 , $security_code , $white ); Trong đó:
+ $image là hình mà chị khởi tạo.
+ 5: là font-size mà các chị quy ước cho ký tự hiện ra trên hình.
+ 30: là khoảng cách bên trái của tấm hình.
+ 6 : là khoảng cách từ trên của tấm hình.
+ $security_code: là đoạn code sau khi mọi người cắt ra ở trên.
+ $white: là màu sắc mà anh đã làm việc hàm ImageColorAllocate( ) ở trên để khởi tạo ra màu trắng.
ế tới chị phải dùng lệnh header để trả nội dung này trở về dữ liệu hình dạng. Và tiến hành khởi tạo định dạng cho file hình mà mọi người vừa tạo là JPG đồng thời phóng thích hình tạm được làm việc để khợi tạo ra tấm hình này bằng đoạn code sau:
header( "Content-Type: image/jpeg" );
ImageJpeg( $image );
ImageDestroy( $image );
?>
Để dễ quản lý mọi người sẽ đặt tất cả đoạn code trên vào trong 1 hàm để dễ dùng và quản lý chúng chuyên nghiệp hơn. Vậy toàn bộ đoạn code trong trang random_image.php
tiếp tục học lập trình PHP , trong trang form chúng ta phải khởi tạo session để chúng nhận được các giá trị mà ta đã khởi tạo và làm việc ở trang random_image , kế tới ta kiểm tra xem người sử dụng có nhấn submit chưa. Nếu có ta phải tiếp kiến thẩm tra xem người dùng nhập vào textbox có đúng là dãy số hiển thị trên hình ảnh hay không. Và xuất ra thông báo tương ứng với nội dung của người nhập liệu
Qua Làm quen này , các chị đã hiệu được nguyên tắc xử lý và những hàm cơ bản mà 1 hệ thống giao thông khi làm việc captcha cần phải ứng dụng như thế nào. Và đương nhiên hàm xử lí captcha này cũng chỉ mang cấu trúc tương đối. Để tăng cường tính bảo mật hơn , các mọi người cần phải làm việc 1 số hàm chuyên dùng nhằm mã hóa hoặc gây nội dung khó nhìn hơn để chặn các tools hoặc các hệ thống bot có xác xuất qua mặt tham số này.