Mathematische CAPTCHAs stellen Rechenaufgaben wie „Was ist 7 + 3?“ dar. oder „Löse: 15 – 8“ als Herausforderung. Logische CAPTCHAs erweitern dies um wortbasierte Fragen wie „Welche Farbe hat der Himmel?“ oder „Geben Sie die größte Zahl ein: 5, 12, 3.“ Diese Herausforderungen gehörten zu den ersten CAPTCHA-Typen und sind auf WordPress-Websites, Kontaktformularen und älteren Anwendungen nach wie vor weit verbreitet. Wenn Ihre Automatisierung auf ein Textfeld stößt, in dem Sie aufgefordert werden, eine einfache Gleichung zu lösen, haben Sie es mit einem mathematischen oder logischen CAPTCHA zu tun.
Arten von mathematischen und logischen CAPTCHAs
1. Grundlegende arithmetische CAPTCHAs
Präsentieren Sie ein einfaches Additions-, Subtraktions- oder Multiplikationsproblem.
Beispiele:
- „Was ist 3 + 5?“
- „12 – 4 = ?“
- „6 × 7 = ?“
Implementierung: Die Frage wird entweder als einfacher Text gerendert (leicht zu analysieren) oder in ein Bild eingebettet (erfordert OCR).
2. Mit Text gerenderte mathematische CAPTCHAs
Die Gleichung wird als Bild gerendert, um eine einfache Textanalyse zu verhindern.
Beispiele:
- Ein Bild mit der Aufschrift „14 + 23 =?“ in verzerrter Schrift
- Ein CAPTCHA-Bild mit farbigen Zahlen und Rauschhintergrund
Implementierung: Erfordert OCR, um die Gleichung aus dem Bild zu lesen, und anschließend eine Berechnung, um die Antwort zu erzeugen.
3. Wortbasierte mathematische CAPTCHAs
Zahlen werden als Wörter statt als Ziffern geschrieben.
Beispiele:
- „Was ist sieben plus drei?“
- „Geben Sie das Ergebnis von zwölf minus fünf ein“
Implementierung: Erfordert NLP-Analyse, um Wörter in Zahlen umzuwandeln, und anschließende Berechnung.
4. Logikfragen
Nicht-arithmetische Fragen, die Allgemeinwissen erfordern.
Beispiele:
- „Welche Farbe hat Gras?“
- „Wie viele Beine hat ein Hund?“
- „Ist Feuer heiß oder kalt?“
Implementierung: Erfordert eine Wissensdatenbank oder ein Sprachmodell. Diese werden typischerweise aus einer festen Fragendatenbank gezogen.
5. Sequentielle oder Muster-CAPTCHAs
Präsentieren Sie eine Zahlenfolge und fragen Sie nach dem nächsten Wert.
Beispiele:
- „Was kommt als nächstes: 2, 4, 6, 8, ?“
- „Vervollständigen Sie das Muster: 1, 1, 2, 3, 5, ?“
Implementierung: Erfordert Mustererkennungslogik.
Wie Mathe-CAPTCHAs technisch funktionieren
Textbasierter mathematischer CAPTCHA-Fluss
Server generates random equation (e.g., "7 + 3")
↓
Stores answer (10) in server-side session
↓
Renders equation as HTML text or image
↓
User submits answer via form field
↓
Server compares submitted answer to stored answer
↓
Match → Form submitted Mismatch → Error shown
Bildbasierter mathematischer CAPTCHA-Fluss
Server generates random equation
↓
Renders equation into a distorted image (noise, lines, color shifts)
↓
Image served to client via <img> tag
↓
User reads image, computes answer, types in form field
↓
Server validates submitted answer
Erkennen mathematischer CAPTCHAs in der Automatisierung
Python-Erkennung
import requests
from bs4 import BeautifulSoup
import re
def detect_math_captcha(url):
"""Detect common math CAPTCHA patterns on a page."""
response = requests.get(url, timeout=10)
soup = BeautifulSoup(response.text, "html.parser")
html = response.text.lower()
indicators = {
"text_math": False,
"image_math": False,
"logic_question": False,
}
# Check for text-based math questions
math_patterns = [
r"what is \d+\s*[\+\-\×\*]\s*\d+",
r"\d+\s*[\+\-\×\*]\s*\d+\s*=\s*\?",
r"solve:\s*\d+",
r"type the (result|answer|sum)",
]
for pattern in math_patterns:
if re.search(pattern, html):
indicators["text_math"] = True
break
# Check for CAPTCHA images near math-related labels
captcha_images = soup.find_all("img", attrs={
"alt": re.compile(r"captcha|math|verify", re.I)
})
if captcha_images:
indicators["image_math"] = True
# Check for logic questions
logic_patterns = [
r"what color is",
r"how many legs",
r"what comes next",
r"is .+ hot or cold",
]
for pattern in logic_patterns:
if re.search(pattern, html):
indicators["logic_question"] = True
break
return indicators
result = detect_math_captcha("https://example.com/contact")
print(result)
Node.js-Erkennung
const axios = require("axios");
const cheerio = require("cheerio");
async function detectMathCaptcha(url) {
const { data: html } = await axios.get(url, { timeout: 10000 });
const $ = cheerio.load(html);
const lower = html.toLowerCase();
const indicators = {
textMath: false,
imageMath: false,
logicQuestion: false,
};
// Text-based math patterns
const mathPatterns = [
/what is \d+\s*[+\-×*]\s*\d+/,
/\d+\s*[+\-×*]\s*\d+\s*=\s*\?/,
/solve:\s*\d+/,
/type the (result|answer|sum)/,
];
for (const pattern of mathPatterns) {
if (pattern.test(lower)) {
indicators.textMath = true;
break;
}
}
// Check for CAPTCHA images
$("img").each((_, el) => {
const alt = ($(el).attr("alt") || "").toLowerCase();
if (/captcha|math|verify/.test(alt)) {
indicators.imageMath = true;
}
});
return indicators;
}
detectMathCaptcha("https://example.com/contact").then(console.log);
Mathe-CAPTCHAs mit OCR lösen
Wenn mathematische CAPTCHAs die Gleichung als Bild darstellen, extrahiert OCR den Text und ein einfacher Parser berechnet die Antwort.
Verwendung von CaptchaAI für bildbasierte mathematische CAPTCHAs
import requests
import time
import re
API_KEY = "YOUR_API_KEY"
CAPTCHA_IMAGE_URL = "https://example.com/captcha.png"
# Download the CAPTCHA image
image_data = requests.get(CAPTCHA_IMAGE_URL).content
# Submit to CaptchaAI OCR
import base64
b64_image = base64.b64encode(image_data).decode()
submit = requests.post("https://ocr.captchaai.com/in.php", data={
"key": API_KEY,
"method": "base64",
"body": b64_image,
"json": 1,
})
task_id = submit.json().get("request")
# Poll for result
for _ in range(30):
time.sleep(3)
result = requests.get("https://ocr.captchaai.com/res.php", params={
"key": API_KEY,
"action": "get",
"id": task_id,
"json": 1,
})
data = result.json()
if data.get("status") == 1:
ocr_text = data["request"] # e.g., "7 + 3"
print(f"OCR result: {ocr_text}")
# Parse and compute the answer
match = re.match(r"(\d+)\s*([+\-*/×])\s*(\d+)", ocr_text)
if match:
a, op, b = int(match.group(1)), match.group(2), int(match.group(3))
ops = {"+": a + b, "-": a - b, "*": a * b, "×": a * b, "/": a // b}
answer = ops.get(op)
print(f"Answer: {answer}")
break
elif "CAPCHA_NOT_READY" in str(data):
continue
Mathematische CAPTCHAs im Vergleich zu anderen CAPTCHA-Typen
| Funktion | Mathe-CAPTCHAs | reCAPTCHA v2 | hCaptcha | Slider-CAPTCHAs |
|---|---|---|---|---|
| Benutzerreibung | Niedrig (schnelles Kopfrechnen) | Mittel (Bildauswahl) | Mittel (Bildauswahl) | Niedrig (einfaches Ziehen) |
| Bot-Resistenz | Sehr niedrig | Hoch | Hoch | Mittel |
| Barrierefreiheit | Gut (textbasierte Versionen) | Schlecht (sehabhängig) | Schlecht (sehabhängig) | Schlecht (motorisch abhängig) |
| Kosten | Kostenlos (selbst gehostet) | Kostenloses Kontingent verfügbar | Kostenloses Kontingent verfügbar | Variiert |
| Allgemeine Nutzung | WordPress, Kontaktformulare | Einloggen, anmelden | Einloggen, anmelden | E-Commerce, Asien |
Warum Mathe-CAPTCHAs immer noch verwendet werden
- Einfachheit – Keine externen API-Abhängigkeiten, keine JavaScript-SDKs
- WordPress-Plugins – Plugins wie „Math CAPTCHA“ und „Really Simple CAPTCHA“ sind weit verbreitet
- Geringe Reibung – Benutzer finden einfache Mathematik schneller als die Bildauswahl
- Barrierefreiheit – Textbasierte mathematische CAPTCHAs funktionieren mit Bildschirmleseprogrammen (im Gegensatz zu Bild-CAPTCHAs).
- Legacy-Systeme – Ältere Anwendungen, die älter als moderne CAPTCHA-Dienste waren
Häufig gestellte Fragen
Sind Mathe-CAPTCHAs wirksam gegen Bots?
Klartext-Mathe-CAPTCHAs werden von jedem Bot, der HTML analysieren kann, problemlos umgangen. Bildbasierte mathematische CAPTCHAs sind etwas schwieriger, lassen sich aber mit OCR leicht lösen. Mathematische CAPTCHAs sind nur gegen die einfachsten Spam-Bots wirksam. Für einen ernsthaften Bot-Schutz verwenden Sie ein verhaltensbasiertes CAPTCHA-System wie reCAPTCHA oder Cloudflare Turnstile.
Wie löse ich bildbasierte mathematische CAPTCHAs in der Automatisierung?
Verwenden Sie einen OCR-Dienst wie CaptchaAI, um die Gleichung aus dem Bild zu extrahieren und dann die Antwort programmgesteuert zu analysieren und zu berechnen. CaptchaAI unterstützt mehr als 27.500 Bild-CAPTCHA-Typen, einschließlich Bildern für mathematische Gleichungen.
Können textbasierte mathematische CAPTCHAs ohne OCR gelöst werden?
Ja. Wenn die Gleichung als HTML-Text (kein Bild) gerendert wird, können Sie sie mithilfe von Regex oder DOM-Parsing direkt aus der Seitenquelle analysieren. Für textbasierte mathematische CAPTCHAs ist keine OCR erforderlich.
Was ist der beste Ersatz für Mathe-CAPTCHAs?
Cloudflare Turnstile ist der beste Ersatz, wenn Sie eine geringe Reibung mit starker Bot-Erkennung wünschen. Es läuft unsichtbar und erfordert keine Benutzerinteraktion. Für eine höhere Sicherheit ist reCAPTCHA v3 mit punktebasierter Bewertung wirksam.
Zusammenfassung
Mathe- und Logik-CAPTCHAs sind der einfachste Herausforderungstyp, der häufig in WordPress-Kontaktformularen und älteren Systemen zu finden ist. Textbasierte Versionen können direkt aus HTML geparst werden. Bildbasierte Versionen erfordern OCR, um die Gleichung zu lesen, und dann einfache Arithmetik, um die Antwort zu berechnen. Für bildbasierte mathematische CAPTCHAs verwenden Sie dieCaptchaAI Bild-OCR-APIum die Gleichung zu extrahieren und zu lösen. Mathe-CAPTCHAs sind zwar leicht zu umgehen, bleiben aber aufgrund ihrer Einfachheit und Zugänglichkeitsvorteile beliebt.