Ob Sie ein Mathe-CAPTCHA mit einer Zeile Regex oder mit einem OCR-Aufruf lösen, entscheidet eine einzige Frage: Wird die Rechenaufgabe als HTML-Text ausgeliefert oder als Bild? Steht „7 + 3“ im Quelltext, genügt ein Parser. Steckt die Gleichung in einem verrauschten PNG, brauchen Sie Texterkennung. Genau diese Weiche ist der Kern dieses Artikels.
Mathe-CAPTCHAs stellen Rechenaufgaben wie „Was ist 7 + 3?“ oder „15 – 8 = ?“. Logik-CAPTCHAs erweitern das um wortbasierte Fragen wie „Welche Farbe hat der Himmel?“. Beide gehören zu den ältesten CAPTCHA-Typen und sind auf WordPress-Seiten, in Kontaktformularen und in Alt-Anwendungen weiterhin allgegenwärtig – ein simples Eingabefeld für eine Gleichung ist das verräterische Merkmal.
Wo Ihnen Mathe- und Logik-CAPTCHAs begegnen
Das klassische Beispiel aus dem DACH-Raum ist das Kontaktformular eines kleinen Handwerksbetriebs auf WordPress. Wegen der Impressumspflicht ist dort fast immer eine erreichbare Kontaktadresse hinterlegt – und genau dieses Formular wird per Plugin wie „Really Simple CAPTCHA“ oder „Math Captcha“ gegen Spam abgesichert. Da es personenbezogene Daten verarbeitet, gehört die DSGVO ohnehin auf die Prüfliste; das Mathe-CAPTCHA ist dabei die sichtbarste, aber schwächste Schutzschicht.
Dass diese Variante trotz ihrer Schwäche überlebt, hat handfeste Gründe:
- Einfachheit – keine externen API-Abhängigkeiten, keine JavaScript-SDKs.
- WordPress-Ökosystem – „Math Captcha“ und „Really Simple CAPTCHA“ sind millionenfach installiert.
- Geringe Reibung – eine Kopfrechenaufgabe lösen Nutzer schneller als eine Bildauswahl.
- Barrierefreiheit – textbasierte Mathe-CAPTCHAs funktionieren mit Screenreadern.
- Alt-Systeme – Anwendungen, die vor den modernen CAPTCHA-Diensten entstanden.
Welche Arten von Mathe- und Logik-CAPTCHAs es gibt
1. Einfache arithmetische CAPTCHAs
Eine simple Additions-, Subtraktions- oder Multiplikationsaufgabe wie „Was ist 3 + 5?“, „12 – 4 = ?“ oder „6 × 7 = ?“. Die Frage steht entweder als reiner Text im Quelltext, ist also leicht auszulesen, oder sie ist in ein Bild eingebettet und erfordert dann OCR.
2. Als Bild gerenderte Mathe-CAPTCHAs
Die Gleichung wird als Grafik ausgeliefert, um das direkte Auslesen zu verhindern – etwa „14 + 23 = ?“ in verzerrter Schrift oder mit farbigen Ziffern auf Rauschhintergrund. Hier führt der Weg zwingend über OCR, das die Gleichung aus dem Bild liest, gefolgt von der Berechnung.
3. Wortbasierte Mathe-CAPTCHAs
Zahlen stehen als Wörter statt als Ziffern, etwa „Was ist sieben plus drei?“ oder „Geben Sie das Ergebnis von zwölf minus fünf ein“. Das erfordert NLP-Parsing, um die Wörter in Zahlen zu überführen, bevor gerechnet wird.
4. Logikfragen
Nicht-arithmetische Fragen, die Allgemeinwissen voraussetzen: „Welche Farbe hat Gras?“, „Wie viele Beine hat ein Hund?“ oder „Ist Feuer heiß oder kalt?“. Sie stammen meist aus einem festen Fragenkatalog und benötigen eine Wissensdatenbank oder ein Sprachmodell.
5. Sequenz- oder Muster-CAPTCHAs
Zeigen eine Zahlenfolge und fragen nach dem nächsten Wert, etwa „Was kommt als Nächstes: 2, 4, 6, 8, ?“ oder „Vervollständigen Sie das Muster: 1, 1, 2, 3, 5, ?“. Nötig ist eine Logik zur Mustererkennung.
Wie ein Mathe-CAPTCHA technisch abläuft
Ablauf beim textbasierten Mathe-CAPTCHA
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
Ablauf beim bildbasierten Mathe-CAPTCHA
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
Entscheidend ist: Beim Text-Ablauf steht die Aufgabe im DOM; beim Bild-Ablauf sehen Sie nur ein <img>-Tag – die Gleichung existiert nur als Pixel.
Mathe-CAPTCHAs in der Automatisierung erkennen
Bevor Sie lösen, müssen Sie zuverlässig erkennen, welche Variante vor Ihnen liegt. Die folgenden Beispiele prüfen eine Seite auf typische Text- und Bildmuster.
Erkennung mit Python
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)
Erkennung mit Node.js
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);
Meldet die Erkennung text_math, genügen Regex oder DOM-Parsing; bei image_math führt der Weg über OCR.
Bild-Mathe-CAPTCHAs mit OCR lösen
Steckt die Gleichung in einem Bild, extrahiert OCR den Text und ein kleiner Parser rechnet das Ergebnis aus. Bei CaptchaAI übermitteln Sie das Bild base64-kodiert und fragen das Ergebnis per Polling ab.
CaptchaAI für bildbasierte Mathe-CAPTCHAs einsetzen
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
OCR liefert nur die Zeichenkette „7 + 3“, das Ausrechnen übernimmt Ihr eigener Parser – so lassen sich jederzeit weitere Operatoren ergänzen.
Mathe-CAPTCHAs im Vergleich zu anderen CAPTCHA-Typen
| Merkmal | Mathe-CAPTCHAs | reCAPTCHA v2 | hCaptcha | Slider-CAPTCHAs |
|---|---|---|---|---|
| Nutzerreibung | Niedrig (schnelles Kopfrechnen) | Mittel (Bildauswahl) | Mittel (Bildauswahl) | Niedrig (einfaches Ziehen) |
| Bot-Resistenz | Sehr niedrig | Hoch | Hoch | Mittel |
| Barrierefreiheit | Gut (textbasierte Varianten) | Schwach (sehabhängig) | Schwach (sehabhängig) | Schwach (motorisch abhängig) |
| Kosten | Kostenlos (selbst gehostet) | Kostenloses Kontingent | Kostenloses Kontingent | Variiert |
| Typischer Einsatz | WordPress, Kontaktformulare | Login, Registrierung | Login, Registrierung | E-Commerce, Asien |
Häufige Fragen
Woran erkenne ich, ob ein Mathe-CAPTCHA als Text oder als Bild ausgeliefert wird?
Prüfen Sie den Quelltext: Steht die Gleichung als lesbarer Text im DOM, ist es ein Text-CAPTCHA und Regex genügt. Sehen Sie stattdessen nur ein <img>-Tag mit einem alt-Attribut wie „captcha“ oder „math“, liegt die Aufgabe als Bild vor und Sie brauchen OCR. Die Erkennungsskripte oben automatisieren genau diese Unterscheidung.
Welche WordPress-Plugins liefern Mathe-CAPTCHAs aus?
Am häufigsten „Really Simple CAPTCHA“ (oft als Contact-Form-7-Erweiterung) und „Math Captcha“. Sie erzeugen serverseitig eine Zufallsgleichung und legen die Antwort in der Session ab. Beide rendern je nach Einstellung als Text oder als Bild – das entscheidet, ob Sie parsen oder OCR einsetzen.
Fallen für Bild-Mathe-CAPTCHAs zusätzliche Kosten pro Lösung an?
Nein. CaptchaAI rechnet Thread-basiert ab, nicht pro Lösung: Sie zahlen für gleichzeitige Threads, die enthaltenen Lösungen pro Thread sind unbegrenzt. Der Einstieg ist BASIC (15 $/Monat, 5 Threads); STANDARD kostet 30 $/Monat (15 Threads). Es gibt keine Aufpreise nach CAPTCHA-Typ und keine Tageslimits.
Reichen Mathe-CAPTCHAs als Bot-Schutz aus?
Nur gegen die einfachsten Spam-Bots. Klartext-Varianten liest jedes HTML-fähige Skript automatisch aus, Bild-Varianten fallen per OCR. Für ernsthaften Schutz führt der Weg zu einem verhaltensbasierten System wie Cloudflare Turnstile (läuft unsichtbar, keine Interaktion) oder reCAPTCHA v3 mit Score-Bewertung.
Fazit
Mathe- und Logik-CAPTCHAs sind der einfachste Abfragetyp und typisch für WordPress-Kontaktformulare und Alt-Systeme. Die eine Frage, die alles steuert, ist das Ausgabeformat: Textbasierte Varianten lesen Sie direkt aus dem HTML, bildbasierte Varianten erfordern OCR, um die Gleichung zurückzugewinnen, und danach simple Arithmetik. Für den Bild-Fall extrahiert die CaptchaAI Bild-OCR-API die Gleichung, das Ausrechnen bleibt in Ihrem Code. So einfach diese CAPTCHAs zu automatisieren sind – dank geringer Reibung und Barrierefreiheit bleiben sie im Einsatz.