Trước khi hiểu về recaptcha là gì, Semtek muốn bạn nắm rõ về Captcha và cách lấy mã captcha? Captcha là nguyên thủy là một hình ảnh chứa các ký tự chữ hoặc số được làm “biến dạng” để máy tính khó đọc mà con người thì đọc được. Mục đích của Captcha là bắt người dùng xác nhận hình ảnh đó thành chữ nếu khớp thì hành động đang thực hiện sẽ được tiếp tục nếu không thì Captcha mới sẽ hiện lên để xác minh lần nữa.
Giới thiệu tổng quan về captcha và google recaptcha
1. Captcha là gì?
Mục đính sau cùng của Captcha là chống lại các phần mềm, robot tự động thực hiện thao tác nhiều lần, liên tục. Captcha đòi hỏi thực thi hành động đó phải là con người – người dùng ngồi trước máy tính.
Ví dụ mộ trang đăng ký không có Captcha thì có thể làm một phần mềm tự động: tự điền thông tin rồi submit để đăng ký. Phần mềm thực hiện liên tục hàng ngàn, hàng triệu lần tài khoản ảo. Điều này không một admin website nào mong muốn.
Captcha từ khi ra đời đến nay đã có rất nhiều biến thể chứ không như xác nhận chuỗi ký tự trong ảnh như: giải toán, trả lời câu hỏi, chơi game, nghe và trả lời …
Captcha có thể gây ra rắc rối cho người dùng thực sự (không phải là robot) khi captcha quá xấu để đọc, nghe không hiểu, … Một loại Captcha được sử dụng rộng rãi hiện nay đó là reCAPTCHA cho chính Google phát minh, sử dụng cung cấp miễn phí.
2. Google reCAPTCHA là gì?
Vâng, trước hết thì đây là một sản phẩm của gã khổng lỗ Google. Với captcha truyền thống ta cần phải gõ vào một tập chữ hoặc số để vượt qua nhưng nó ngày càng dễ bị qua mặt bởi hacker, spammer …. Do đó một loại Captcha mới ra đời gọi là no-Captcha. Thay vì phải nhìn và gõ đống kí tự khó nhận biết kia thì ta chỉ cần ấn vào nút “Tôi không phải là người máy” – thế là xong.
Nghe đơn giản quá nhỉ? Nhưng thật ra thì chưa hẳn đâu, vì nếu Google vẫn chưa đủ tin tưởng bạn là “con người” thì nó sẽ tiếp tục sử dụng hệ thống nhận biết hình ảnh. Đại loại là nó đưa ra 9 bức hình và hỏi bạn đâu là hình của gái xinh chẳng hạn =)) Mọi thứ nghe có vẻ rất đơn giản nhưng sâu bên trong là hệ thống theo dõi và đánh giá hành vi người dùng từ đó phân biệt được đâu là người dùng thật đâu là công cụ spam.
3. Cách hoạt động của reCAPTCHA
So với các phần mềm nhận dạng khác, reCAPTCHA yêu cầu người dùng phải nhập 2 chữ cái khác nhau thay vì 1 chữ.
Và cũng không giống các CAPTcòn lại, reCAPTCHA không tự động “tạo” những chữ khó nhìn để đánh đố người dùng mà lấy hẳn hình ảnh từ các văn bản vật lý (sách, báo, tờ rơi…) mà phần mềm nhận diện mặt chữ (Optical Character Recognition – OCR) không thể giải quyết được.
Các phần mềm OCR luôn được sử dụng để chuyển các trang sách, tạp chí, bài báo từ bản in sang bản điện tử để lưu trữ cũng như phân phối.
Nhưng OCR cũng chỉ là một phần mềm “bắt chước” khả năng đọc của con người, nếu như trang giấy có dấu hiệu sờn, cũ hoặc xuống cấp, OCR sẽ ngay lập tức không nhận diện được, dù một người bình thường có thể dễ dàng nhận ra chữ đó là gì.
Trong 2 chữ mà chương trình này “thách thức” người dùng, một chữ đã được nhận diện và lưu trong kho dữ liệu, một chữ còn lại sẽ đến từ danh sách các từ mà OCR không đọc được ở trên.
Nếu có ít nhất 6 người dùng cùng sử dụng một chữ để thay thế cho hình ảnh mà OCR không nhận diện được, reCAPTCHA sẽ xem nó như là một từ đã được “điện tử hóa” thành công.
reCAPTCHA giá trị như thế nào?
Với khả năng đọc chữ chính xác như vậy, reCAPTCHA đã được tờ báo danh tiếng New York Times thuê để điện tử hóa tất cả bài viết cũ. Và chỉ vài tháng sau đó, tất cả bài viết của New York Times trong vòng 20 năm trước khi máy tính xuất hiện đã được reCAPT điện tử hóa dễ dàng.
Sau 1 năm hoạt động, reCAPTCHA đã điện tử hóa thành công hơn 440 triệu từ, tương đương với gần 17.600 quyển sách!
Vào năm 2009, Google đã chi ra một khoản tiền lớn (theo dự đoán ít nhất là 30 triệu USD) mua lại reCAPTCHA để sử dụng cho Google Books, biến đây trở thành thư viện điện tử lớn nhất thế giới chỉ sau vài năm.
Ngoài ra, reCAPT còn được Google sử dụng cho nhiều mục đích khác như giải mã số nhà, biển tên đường trên Google Maps Street View hoặc phân biệt các phương…
Google nhanh chóng chứng minh được rằng việc thu mua reCAPTCHA là điều hoàn toàn đúng đắn. Chỉ một thời gian ngắn, Google đã thu lại vốn mua reCAPTCHA qua các ứng dụng trên.
Cách triển khai của Google về reCAPTCHA
Để có thể bắt đầu implements Google reCaptcha trước hết ta cần phải tạo 1 API key. Truy cập vào trang bạn sẽ được yêu cầu đăng kí website của bạn và version của reCAPTCHA.
Sau khi submit thì Google sẽ cung cấp cho bạn 1 Site key và 1 Secret key:
Chú ý chọn loại :
- reCAPTCHA v3: Đây lòa loại mới nhất và với kiểu captcha này sẽ không cần bất cứ một thao tác nào của người dùng mà Google sẽ tự xác minh và trả về 1 token cho site. Ta gửi token đó lên server để verify xem người dùng có hợp lệ hay không
- reCAPTCHA v2: Đây là version cũ của reCAPTCHA mà ta vẫn hay thường gặp. reCAPTCHA v2 yêu cầu người dùng click vào một checkbox xác minh “Tôi không phải là người máy”. Hoặc có 1 cách vẫn ẩn được checkbox đó là option “Invisible” ở phía trên. Khi đó sẽ dựa vào button submit form để đồng thời gửi lên cả token lên server để xác minh.
1. reCAPTCHA v3
Tiếp theo mình sẽ demo reCAPTCHA v3 trước nhé:
Và việc tiếp theo bạn cần làm là tích hợp reCAPTCHA vào trang web của bạn ở client. Thêm đoạn script sau:
<script src=’https://www.google.com/recaptcha/api.js?render=6LfGv3wUAAAAAG1AvsBtfcss7FPsBPTFnGFQt4yZ’></script>
<script>
grecaptcha.ready(function() {
grecaptcha.execute(‘6LfGv3wUAAAAAG1AvsBtfcss7FPsBPTFnGFQt4yZ’, {action: ‘register’})
.then(function(token) {
alert(token);
// Verify the token on the server.
});
});
</script>
Flow của nó sẽ diễn ra như sau:
1. Thêm Javascript api với site key của bạn
2. Gọi hàm grecaptcha.execute trên một hành động hoặc khi tải trang
3. Gửi token được generate từ server google cho backend để verify
Minh họa thử với 1 trang đăng kí người dùng viết bằng Laravel nhé. Tạo nhanh trang đăng nhập đăng kí bằng command: php artisan make:auth. Ở file rescources/views/auth/register.blade.php ta thêm đoạn script đã viết ở trên. Chú ý để chạy được bạn cần tạo virtual host cho project đang chạy giống như site mà bạn đã set trên trang admin recaptcha nhé. Ví dụ chúng tôi đã setup virtual host là . recaptcha là gì
Như vậy sau khi đã có token thì việc tiếp theo cần làm là gửi token đó lên server và xác nhận xem đó có phải là token hợp lệ hay không. Để xử lý việc này bên backend Semtek sẽ sử dụng thư viện google/recaptcha. Cài đặt bằng cách dùng composer
composer require google/recaptcha “^1.2”
Và hàm check token recaptcha như sau:
public function verify(Request $request)
{
$token = $request->get(‘token’);
$recaptcha = new ReCaptchaReCaptcha(‘6LfGv3wUAAAAADQxyh5cTOo4hp5QugwEI1LOMO0V’);
$resp = $recaptcha->setExpectedHostname($request->getHost())
->setExpectedAction(‘register’)
->verify($token, $request->ip());
if ($resp->isSuccess()) {
// Verified!
} else {
$errors = $resp->getErrorCodes();
}
}
Như vậy nếu token hợp lệ thì action tiếp tục được thực hiện còn nếu không thì mình sẽ trả lỗi về cho client là “Bạn là 1 spammer”.
2. reCAPTCHA v2
Tiếp tục Semtek sẽ thử implements CAPTCHA v2. Quay lại bước đăng kí API key ở trên bạn nhớ chọn loại CAPTCHA v2 nhé.
Sau khi đã có Site key và Secret key mới ta chỉnh sửa 1 chút ở file register.blade.php: Thêm script load api:
<script src=’https://www.google.com/recaptcha/api.js’></script>
Thêm div để generate checkbox
<div class=”g-recaptcha” data-sitekey=”6LeCyXwUAAAAAENIyDkZM5ZpNglmqrgjmdrDSVtv”></div>
Ta có kết quả như sau:
Sau khi click vào ô checkbox thì form register sẽ tự động thêm 1 input là g-recaptcha-response chính là token mà google trả về khi click vào checkbox. Semtek gửi kèm token này lên server để check. Bên server side thì xử lý như ở trên.
Hướng dẫn cách lấy mã Captcha cho người mới bắt đầu
Cách lấy mã captcha không hề khó nếu bạn biết áp dụng đúng cách
Sau đây là hướng dẫn chi tiết về cách lấy mã captcha (2 loại phổ biến nhất) như sau:
Cách lấy mã Captcha ký tự
- Gõ captcha trong khoảng 15 giây → Click Enter
- Gõ ký tự chữ từ a→z, ký tự số từ 0 → 9 và không gõ thêm bất cứ ký tự nào khác.
- Trường hợp Captcha lỗi hoặc không nhìn rõ, không gõ kịp quá 15 giây → Gõ dấu “?”
- Captcha gồm rất nhiều chữ nhỏ → Chỉ cần gõ các chữ nổi bật hiện lên
- Captcha dạng phép tính (cộng/trừ) và chứa dấu bằng → Gõ kết quả của phép toán đó
- Captcha là tiếng Trung, Hàn, Nhật → Gõ dấu “?”
Cách lấy mã Captcha hình ảnh
- Nhìn kỹ yêu cầu của hệ thống, click chuột vào các hình đúng. Nếu chọn sai, click một lần nữa vào ảnh đã chọn để loại bỏ
- Xử lý captcha không quá 15 giây và hạn chế nhập mã captcha sai nhiều lần
- Trường hợp không chọn được captcha hình ảnh theo yêu cầu → Click “Don’t know” để hệ thống đưa ra yêu cầu captcha tiếp theo
- Khi captcha ảnh lỗi không chọn được → Chờ đến khi mã captcha tiếp theo hiển thị
>>> Lưu ý bảo vệ an toàn cho mã captcha để bảo mật website của bạn, bằng cách:
- Sử dụng hình ảnh an toàn, hạn chế ảnh có kích thước nhỏ.
- Ưu tiên dùng các ảnh méo méo, biến dạng, đặc biệt, ít người dùng.
- Lựa chọn đa dạng các loại hình captcha văn bản và hình ảnh
Bí mật từ reCAPTCHA – không chỉ để chống spam
Người dùng Internet đã quá quen thuộc với CAPTCHA, một công đoạn phiền toái khi lướt web để chứng minh người dùng là người thật chứ không phải robot.
Thuật ngữ CAPTCHA là viết tắt của Hệ thống Tự động Phân biệt Con người và Máy tính (Completely Automated Public Turing test to tell Computers and Humans Apart) do Luis von Ahn, tại Đại học Carnegie Mellon sáng tạo ra vào năm 2007.
CAPTCHA khá hiệu quả trong việc phòng tránh các cuộc tấn công từ chối dịch vụ hàng loạt hoặc đánh cắp dữ liệu và đặc biệt là chương trình này hoàn toàn miễn phí nên được rất nhiều trang web sử dụng.
Nhà sáng lập Lui nhận ra rằng, để hoàn tất một mẫu CAPTCHA mỗi người chỉ tốn vài giây, nhưng nếu tính tổng cộng số người dùng khổng lồ trên Internet thì có tới hàng trăm giờ lao động “lãng phí” đang đổ vào CAPTCHA mỗi ngày. Chính vì vậy, Luis đã cho ra đời reCAPTCHA nhằm tận dụng những giờ lao động quý giá này.
Về cơ bản, reCAPT vẫn là một chương trình CAPTCHA thông thường và hoàn toàn miễn phí, dễ sử dụng. Rất nhanh chóng, reCAPTCHA đã được các chủ sở hữu website sử dụng làm chương trình phòng vệ mặc định.
Nhưng ít ai biết rằng, đằng sau chương trình miễn phí này là cả một mô hình kinh doanh “thiên tài”, đang biến hàng chục triệu người dùng Internet thành những “cỗ máy đánh chữ” mà họ không hề hay biết.
Những lợi ích của reCAPTCHA là gì?
Tính bảo mật cao
reC đi đầu trong công cuộc giảm thiểu bot trong thời gian hơn một thập kỷ. reC cũng đang tích cực bảo vệ dữ liệu cho mạng lưới hàng trăm triệu website của google.
Không tạo nên tranh chấp với kẻ lạ
Một lợi thế thứ hai của reC đó chính là nó không tạo nên tranh chấp với kẻ lạ. Là một dịch vụ phát hiện gian lận liền mạch và ngăn chặn các cuộc tấn công tự động trong khi phê duyệt người dùng hợp lệ. Chính vì thế khi người dùng đăng nhập không hợp lệ hoặc có sai phạm sẽ bị tự động chặn tài khoản. Điều này rất tốt vì đây là chính sách của reC, người dùng không đủ điều kiện sẽ không được phép truy cập. Kết quả chặn sẽ không bị khiếu nại bởi đây là chính sách và yêu cầu của reCAPTCHA.
Dễ dàng sử dụng và ngăn chặn được nhiều mối nguy hại
Các thuật toán bot thường dựa trên rủi ro của reC đã áp dụng học máy liên tục trên việc tương tác của khách hàng và bot. reC có tính năng mạnh mẽ hơn có thể phát hiện nhiều sơ hở và tấn công của tin tặc hơn những công nghệ truyền thống.
Liên hệ với SEMTEK để tháo nút thắt cho website của bạn bằng giải pháp về Marketing!
SEMTEK Co,.LTD
🏡 Địa chỉ: 2N Cư Xá Phú Lâm D, Phường 10, Quận 6, TP.HCM
📧 Email: info@semtek.com.vn
☎️ Hotline: (+84)098.300.9285
Các tìm kiếm liên quan:
- cách bật captcha
- cách vượt qua captcha
- phá captcha
- mã captcha bidv
- tích hợp captcha vào website
- các loại captcha
- cách lấy mã captcha
- cách làm captcha
Nội dung liên quan:
- Nhân khẩu học là gì ? Yếu tố nhân khẩu học bao gồm những gì?
- Hướng dẫn cách sử dụng luật hấp dẫn không phải ai cũng biết
- Nên học marketing ở đâu ? Những trường đại học nào đào tạo Marketing tại Việt Nam?