W tym artykule staraliśmy się odpowiedzieć na wszystkie najważniejsze pytania. Pierwszym krokiem w rozwiązywaniu problemu jest ustalenie, jaki system ochrony jest używany. W tym celu możesz skorzystać z listy popularnych captcha i systemów ochrony antybotowej, gdzie znajdziesz przykłady graficzne oraz kluczowe cechy, które pomogą szybko rozpoznać, z czym masz do czynienia.
Jeśli okaże się, że na Twojej stronie używany jest ImageToText, kolejnym krokiem będzie dokładniejsze poznanie jej właściwości i sposobu działania. W tym artykule możesz również zapoznać się z instrukcją integracji systemu ImageToText, aby w pełni zrozumieć, jak funkcjonuje on na Twojej stronie. Dzięki temu nie tylko lepiej poznasz obecną ochronę, ale też świadomie zaplanujesz jej dalsze utrzymanie.
Praca z CapMonster Cloud poprzez API zazwyczaj obejmuje następujące kroki:
type - ImageToTextTask
body - Inhoud van het CAPTCHA-bestand, gecodeerd in base64. Zorg ervoor dat de waarde in één regel wordt verzonden, zonder regeleinden;
capMonsterModule (optioneel) - Naam van de module, bijvoorbeeld “yandex”. Een alternatieve manier om de modulenaam en een lijst van alle beschikbare modules te verkrijgen vindt u hier;
U kunt ook andere optionele parameters instellen:
recognizingThreshold - Herkenningsdrempel van de CAPTCHA met mogelijke waarden van 0 tot 100;
case - Hoofdlettergevoeligheid bij oplossen. Mogelijke waarden: true, false;
numeric - 1 — als de CAPTCHA alleen uit cijfers bestaat. Mogelijke waarden: 0, 1;
math - false — standaard niet ingesteld;
true — CAPTCHA vereist een wiskundige bewerking (bijvoorbeeld CAPTCHA 2 + 6 geeft 8).
Belangrijk: gebruik de parameter math: true niet voor de module captcha_math.
https://api.capmonster.cloud/createTask{
"clientKey":"API_KEY",
"task": {
"type":"ImageToTextTask",
"body":"BASE64_BODY_HERE!"
}
}
{
"errorId":0,
"taskId":407533072
}https://api.capmonster.cloud/getTaskResult{
"clientKey":"API_KEY",
"taskId": 407533072
}
{
"errorId":0,
"status":"ready",
"solution": {
"text":"answer"
}
}
// npm install playwright @zennolab_com/capmonstercloud-client
// npx playwright install chromium
import { CapMonsterCloudClientFactory, ClientOptions, ImageToTextRequest, CapMonsterModules } from '@zennolab_com/capmonstercloud-client';
import { chromium } from 'playwright';
const API_KEY = "YOUR_API_KEY"; // Voer uw CapMonster Cloud API-sleutel in
async function solveImageToTextAndFillField() {
const cmcClient = CapMonsterCloudClientFactory.Create(
new ClientOptions({ clientKey: API_KEY })
);
// Controleer indien nodig het saldo
const balance = await cmcClient.getBalance();
console.log("Balance:", balance);
// 1. Start Playwright en open de pagina met het formulier
const browser = await chromium.launch({ headless: false });
const context = await browser.newContext();
const page = await context.newPage();
await page.goto("https://example.com/form"); // 2. Verkrijg de CAPTCHA-URL van de pagina (voorbeeld via <img>-selector)
// 2. Verkrijg de CAPTCHA-URL van de pagina (voorbeeld via <img>-selector)
const captchaUrl = await page.getAttribute("#captcha-img", "src");
// 3. Download de afbeelding en converteer naar Base64
const response = await fetch(captchaUrl);
const imageBuffer = await response.arrayBuffer();
const imageBase64 = Buffer.from(imageBuffer).toString('base64');
// 4. Maak een verzoek voor ImageToText-oplossing
const imageToTextRequest = new ImageToTextRequest({
body: imageBase64,
CapMonsterModule: CapMonsterModules.YandexWave, // of een andere module
Case: true,
numeric: 0,
recognizingThreshold: 65,
math: false
});
// 5. Verkrijg de CAPTCHA-oplossing
const result = await cmcClient.Solve(imageToTextRequest);
console.log("Captcha solution:", result.solution.text);
// 6. Plaats de oplossing in het formulierveld en verzend
await page.fill("#captcha-input", result.solution.text); // Vervang door uw selector
await page.click("#submit-button"); // Vervang door uw knopselector
await page.waitForLoadState("networkidle");
console.log("Formulier verzonden met CAPTCHA-oplossing");
// 7. Sluit de browser
await browser.close();
}
solveImageToTextAndFillField().catch(console.error);
Stap 1. Kies een aanpak
Bepaal eerst hoe u de CAPTCHA wilt gebruiken:
Optie 1 — externe leverancier
Geschikt als u snelle implementatie en minimale ondersteuning nodig heeft.
Voordelen:
Nadelen:
Optie 2 — aangepaste tekst CAPTCHA
Geschikt als volledige controle en integratie nodig is.
Voordelen:
Nadelen:
Stap 2. Implementeer CAPTCHA-generatie
Voor leverancier
Voor aangepaste CAPTCHA
Stap 3. Toon de CAPTCHA aan de gebruiker
Belangrijk: elke keer dat de pagina wordt geladen, moet een nieuwe code worden gegenereerd.
Stap 4. Verstuur gegevens naar de server
Bij het verzenden van het formulier, verzend:
Voor aangepaste CAPTCHA mag de code niet op de client worden opgeslagen — alleen op de server.
Stap 5. Controleer de CAPTCHA op de server
Leverancier
Aangepaste CAPTCHA
Stap 6. Neem een beslissing
Stap 7. Versterk de beveiliging (aanbevolen)
Zelfs voor tekst-CAPTCHA wordt aanbevolen om toe te voegen:
Controleer dat:
Als u een website heeft met een reeds geïnstalleerde CAPTCHA of een ander beveiligingssysteem en geen toegang heeft tot de code, is dat geen probleem! Het is vrij eenvoudig om te bepalen welke technologie wordt gebruikt. Voor controle van de correcte werking kunt u de CapMonster Cloud-herkenningsservice in een geïsoleerde testomgeving gebruiken om te verifiëren dat de tokenverwerking en verificatielogica correct werken.
Voor een afbeeldings-CAPTCHA volstaat het om het systeem te identificeren, het gedrag te bestuderen en te controleren dat de bescherming correct functioneert. In dit artikel hebben we laten zien hoe u een afbeeldings-CAPTCHA (ComplexImage) kunt identificeren en hoe u deze kunt aansluiten of opnieuw configureren om de bescherming veilig te onderhouden en te controleren.