logo
bars

MTCaptcha
và CapMonster Cloud

Giải pháp captcha, cài đặt trên website và kiểm tra.
Bạn nhận lại một website đã có captcha hoặc lớp bảo vệ khác nhưng không có quyền truy cập mã nguồn? Khi đó điều bạn cần biết là giải pháp nào đang chạy, cấu hình có đúng không và cách kiểm tra như thế nào.

Trong bài viết này, chúng tôi đã cố gắng trả lời tất cả những câu hỏi quan trọng. Bước đầu tiên để bắt đầu giải quyết vấn đề là xác định hệ thống bảo mật nào đang được sử dụng. Để làm điều đó, bạn có thể tham khảo danh sách các captcha và hệ thống chống bot phổ biến, trong đó có các ví dụ minh họa và những dấu hiệu chính giúp bạn nhanh chóng nhận biết mình đang làm việc với giải pháp nào.

Nếu bạn phát hiện trang web của mình đang sử dụng MTCaptcha, bước tiếp theo là tìm hiểu chi tiết hơn về các đặc tính và cách hoạt động của nó. Ngay trong bài viết này, bạn cũng có thể xem hướng dẫn tích hợp hệ thống MTCaptcha để hiểu đầy đủ cách nó vận hành trên trang web của bạn. Điều đó giúp bạn không chỉ nắm rõ lớp bảo vệ hiện tại mà còn lập kế hoạch bảo trì một cách hợp lý.

MTCaptcha là gì
MTCaptcha là gì
MTCaptcha là hệ thống bảo vệ website khỏi các hành động tự động, sử dụng kiểm tra thông minh và captcha. Dịch vụ trước tiên phân tích lưu lượng nền. Nếu hành vi của người truy cập có vẻ đáng ngờ, hệ thống sẽ tự động hiển thị captcha văn bản để xác minh bổ sung.

Cách giải MTCaptcha qua CapMonster Cloud

Khi kiểm thử biểu mẫu chứa MTCaptcha, bạn thường phải xác minh xem captcha đã tích hợp đúng và hoạt động ổn định chưa.

Bạn có thể tự kiểm tra captcha trên site.

  • Mở trang có form và đảm bảo captcha hiển thị.
  • Thử gửi form mà không giải captcha — máy chủ phải trả lỗi.
  • Sau khi giải thành công, form phải gửi đi trơn tru.

Để giải tự động có thể dùng CapMonster Cloud, dịch vụ nhận tham số captcha, xử lý trên máy chủ của họ và trả về token sẵn dùng. Chèn token này vào form để vượt qua kiểm tra mà không cần tương tác người dùng.

Làm việc với CapMonster Cloud qua API thường gồm các bước:

Tạo nhiệm vụTạo nhiệm vụ
arrow
Gửi yêu cầu APIGửi yêu cầu API
arrow
Nhận kết quảNhận kết quả
arrow
Áp dụng token lên trangÁp dụng token lên trang
arrow
Nhận diện MTCaptcha với thư viện có sẵn
Dịch vụ CapMonster Cloud cung cấp các thư viện sẵn có để làm việc thuận tiện với Python, JavaScript (Node.js) và C#.
Python
JavaScript
C#
Giải quyết, chèn token và gửi biểu mẫu
Ví dụ Node.js cho vòng lặp nhận diện captcha hoàn chỉnh trên trang web của bạn. Các cách tiếp cận: sử dụng HTTP request để lấy HTML và các tham số captcha, gửi phản hồi và xử lý kết quả; hoặc dùng công cụ tự động hóa (ví dụ, Playwright) — mở trang, đợi captcha, gửi tham số (trong kiểm tra có thể gửi dữ liệu đúng hoặc sai), nhận kết quả qua client CapMonster Cloud, chèn token vào biểu mẫu và xem kết quả.

  // npm install playwright @zennolab_com/capmonstercloud-client
import { chromium } from 'playwright';
import { CapMonsterCloudClientFactory, ClientOptions, MTCaptchaRequest } from '@zennolab_com/capmonstercloud-client';

const API_KEY = 'YOUR_API_KEY';
const TARGET_URL = 'https://example.com';

async function main() {
  const browser = await chromium.launch({ headless: false });
  const context = await browser.newContext();
  const page = await context.newPage();

 
  let websiteKey = null;
  page.on('request', request => {
    const url = request.url();
    if (url.startsWith('https://service.mtcaptcha.com/mtcv1/api/getchallenge.json')) {
      const params = new URL(url).searchParams;
      const sk = params.get('sk');
      if (sk) {
        websiteKey = sk;
        console.log('Extracted websiteKey (sk):', websiteKey);
      }
    }
  });

  
  await page.goto(TARGET_URL, { waitUntil: 'networkidle' });

  if (!websiteKey) {
    console.error('Failed to extract websiteKey (sk) from the page');
    await browser.close();
    return;
  }

  
  const client = CapMonsterCloudClientFactory.Create(
    new ClientOptions({ clientKey: API_KEY })
  );

  
  const mtcaptchaRequest = new MTCaptchaRequest({
    websiteURL: TARGET_URL,
    websiteKey: websiteKey,
    isInvisible: false,
    pageAction: 'login'
  });

  // Giải captcha
  const result = await client.Solve(mtcaptchaRequest);

  
  const verifiedToken = typeof result?.solution?.value === 'string'
    ? result.solution.value
    : JSON.stringify(result.solution.token);

  console.log('VerifiedToken:', verifiedToken);

  
  // Chèn token và gửi biểu mẫu (thay bằng selector phù hợp)
  await page.evaluate((token) => {
    const input = document.querySelector('#mtcaptcha-verifiedtoken-1');
    if (input) input.value = token;
  }, verifiedToken);

  console.log('Token inserted into input');

  
  // await page.click('button[type="submit"]');

  await page.waitForTimeout(5000);

  await browser.close();
}

main().catch(err => {
  console.error('An error occurred:', err);
});
Cách kết nối MTCaptcha vào website của bạn
Để hiểu rõ captcha trên website, nắm được logic kiểm tra, kết nối lại hoặc cấu hình, khuyến nghị nghiên cứu phần này. Nó mô tả quy trình kết nối bảo vệ — giúp nhanh chóng nắm mọi chi tiết.

1. Đăng ký hoặc đăng nhập vào tài khoản MTCaptcha của bạn.

2. Sau khi đăng ký, thêm website. Bạn sẽ nhận được hai key.

  • Site Key — key công khai cho frontend, để hiển thị widget.
  • Private Key — key riêng cho server, để kiểm tra giải pháp captcha. Chỉ lưu trên server, không gửi client.

Ví dụ:

HowTo Connect image 1

3. Cấu hình client MTCaptcha:

Chèn mã vào <head> của trang.

Thay <YOUR SITE KEY> bằng Site Key của bạn từ bảng điều khiển MTCaptcha.


  <head>
  <script>
    var mtcaptchaConfig = {
      sitekey: "<YOUR SITE KEY>"
    };
  
    (function() {
      var mt_service = document.createElement('script');
      mt_service.async = true;
      mt_service.src = 'https://service.mtcaptcha.com/mtcv1/client/mtcaptcha.min.js';
      (document.head || document.body).appendChild(mt_service);
  
      var mt_service2 = document.createElement('script');
      mt_service2.async = true;
      mt_service2.src = 'https://service2.mtcaptcha.com/mtcv1/client/mtcaptcha2.min.js';
      (document.head || document.body).appendChild(mt_service2);
    })();
  </script>
</head>


Thêm container captcha vào <body>

Nơi bạn muốn hiển thị captcha (ví dụ: trong form):

<div class="mtcaptcha"></div>

Widget sẽ tự động tải.

HelpIcon

Bạn có thể sử dụng SDK và plugin có sẵn để tích hợp nhanh:

  • Server-side SDKs: Java, Node.js, PHP
  • Client-side SDKs: React, React Native, Vue
  • CMS plugin: WordPress, Drupal

MTCaptcha cũng cung cấp trang demo để thử nghiệm và cấu hình bảo vệ trước khi triển khai website.

4. Làm việc với server. Lấy Verified-Token từ client.

Qua trường ẩn của form:

<input type="hidden" name="mtcaptcha-verifiedtoken" />

Hoặc qua JS:

mtcaptcha.getVerifiedToken() / mtcaptchaVerifiedCallback(status)

Gửi token đến server cùng form hoặc request.

Kiểm tra token qua API (kiểm tra server):

GET https://service.mtcaptcha.com/mtcv1/api/checktoken?privatekey=<PRIVATE_KEY>&token=<TOKEN>
  • privatekey — key riêng của bạn (chỉ server)
  • token — token từ client

URL thay thế cho server có firewall:

https://service2.mtcaptcha.com/mtcv1/api/checktoken

Xử lý phản hồi:

success: true → captcha vượt qua, tiếp tục xử lý.

Ví dụVí dụ
arrow

success: false → lỗi (token hết hạn, tái sử dụng, v.v.)

HelpIcon
Mỗi verifiedToken có hiệu lực vài phút và chỉ được kiểm tra một lần qua CheckToken API, ngăn tái sử dụng. Sau khi nhận token, server phải kiểm tra kịp — widget MTCaptcha đảm bảo ít nhất 50 giây để xác thực.

Ví dụ đơn giản với module MTCaptcha trên Node.jsVí dụ đơn giản với module MTCaptcha trên Node.js
arrow

HelpIcon

Để tìm hiểu chi tiết các tính năng của MTCaptcha — tùy chỉnh widget, cài đặt client/server, tích hợp framework và các khía cạnh khác — tham khảo tài liệu chính thức.

Background
Các lỗi thường gặp và cách xử lý
Bug Icon
Website hoặc key không hợp lệ
Captcha không tải hoặc server trả về invalid-privatekey hoặc privatekey-mismatch-token. Đảm bảo bạn sử dụng cặp sitekeyprivatekey chính xác.
Bug Icon
Token không có hoặc không hợp lệ
Các lỗi missing-input-token, invalid-token, bad-request. Hãy kiểm tra rằng giá trị token được gửi đến máy chủ và không bị thay đổi.
Bug Icon
Token hết hạn (token-expired)
Token chỉ có hiệu lực trong thời gian giới hạn (~120 giây), sau đó cần lấy lại.
Bug Icon
Kiểm tra token trùng lặp (token-duplicate-cal)
Token chỉ có thể kiểm tra một lần — bảo vệ chống replay attack.
Bug Icon
Key hết hạn hoặc bị vô hiệu hóa (expired-sitekey-or-account)
Đảm bảo key còn hiệu lực và tài khoản đang hoạt động.
Bug Icon
Để chẩn đoán, bật ghi log request và hiển thị fail_codes để biết nguyên nhân lỗi.
Kiểm tra độ bền vững của lớp bảo vệ
Khuyến nghị về bảo mật và tối ưu
Chỉ lưu <b>privatekey trên máy chủ</b> — không truyền nó đến phía khách.
Ghi log <b>fail_codes</b> để theo dõi nguyên nhân lỗi và phân tích các nỗ lực vượt qua bảo vệ.
Thêm liên kết đến <b>Chính sách quyền riêng tư</b> và <b>Điều khoản sử dụng</b> vào biểu mẫu nếu nền tảng của bạn yêu cầu.
Kết luận

Nếu bạn tiếp quản một trang web đã được cài sẵn captcha hoặc một hệ thống bảo vệ khác nhưng lại không có quyền truy cập vào mã nguồn thì cũng không có gì đáng lo! Việc xác định chính xác công nghệ nào đang được sử dụng khá đơn giản. Để kiểm tra xem mọi thứ có hoạt động đúng hay không, bạn có thể dùng dịch vụ nhận dạng CapMonster Cloud trong một môi trường thử nghiệm tách biệt nhằm đảm bảo cơ chế xử lý token và logic kiểm tra đang vận hành chính xác.

Với MTCaptcha, bạn chỉ cần nhận diện hệ thống, quan sát hành vi của nó và xác nhận rằng lớp bảo vệ hoạt động đúng cách. Trong bài viết này, chúng tôi đã chỉ ra cách nhận biết MTCaptcha và nơi tìm hướng dẫn tích hợp hoặc cấu hình lại, giúp bạn tự tin duy trì lớp bảo vệ và kiểm soát hoạt động của nó.

Conclusion
Liên kết hữu ích
DocIconTài liệu MTCaptchaDocIconTài liệu CapMonster Cloud (làm việc với MTCaptcha)DocIconSDK và plugin tích hợp nhanh MTCaptchaDocIconTrang demo MTCaptcha (Code Builder)