Matematik CAPTCHA'ları "7 + 3 nedir?" gibi aritmetik problemler sunar. veya meydan okuma olarak "Çöz: 15 – 8". Mantıksal CAPTCHA'lar bunu "Gökyüzü ne renk?" gibi kelimeye dayalı sorularla genişletir. veya "En büyük sayıyı yazın: 5, 12, 3." Bu zorluklar en eski CAPTCHA türleri arasındaydı ve WordPress sitelerinde, iletişim formlarında ve eski uygulamalarda yaygın olarak varlığını sürdürüyor. Otomasyonunuz sizden basit bir denklemi çözmenizi isteyen bir metin alanıyla karşılaşırsa, bir matematik veya mantık CAPTCHA'sıyla uğraşıyorsunuz demektir.
Matematik ve mantık CAPTCHA türleri
1. Temel aritmetik CAPTCHA'lar
Basit bir toplama, çıkarma veya çarpma problemi sunun.
Örnekler:
- "3+5 nedir?"
- "12 – 4 =?"
- "6 × 7 =?"
Uygulama: Soru ya düz metin olarak oluşturulur (kolayca ayrıştırılır) ya da bir görselin içine gömülür (OCR gerektirir).
2. Metinle oluşturulan matematik CAPTCHA'ları
Denklem, basit metin ayrıştırmayı önlemek için resim olarak işlenir.
Örnekler:
- "14 + 23 =?" gösteren bir resim bozuk yazı tipinde
- Renkli sayılara ve gürültülü arka plana sahip bir CAPTCHA görüntüsü
Uygulama: Görüntüden denklemi okumak için OCR'yi ve ardından yanıtı üretmek için hesaplamayı gerektirir.
3. Kelime tabanlı matematik CAPTCHA'ları
Sayılar rakam yerine kelime olarak yazılır.
Örnekler:
- "Yedi artı üç kaç eder?"
- "On iki eksi beşin sonucunu yazın"
Uygulama: Kelimeleri sayılara dönüştürmek için NLP ayrıştırmasını ve ardından hesaplamayı gerektirir.
4. Mantık soruları
Ortak bilgi gerektiren aritmetik dışı sorular.
Örnekler:
- "Çim ne renk?"
- "Bir köpeğin kaç bacağı vardır?"
- "Ateş sıcak mı soğuk mu?"
Uygulama: Bir bilgi tabanı veya dil modeli gerektirir. Bunlar genellikle sabit bir soru bankasından alınır.
5. Sıralı veya desenli CAPTCHA'lar
Bir sayı dizisi sunun ve bir sonraki değeri isteyin.
Örnekler:
- "Sonra ne geliyor: 2, 4, 6, 8, ?"
- "Deseni tamamlayın: 1, 1, 2, 3, 5,?"
Uygulama: Örüntü tanıma mantığı gerektirir.
Matematik CAPTCHA'ları teknik olarak nasıl çalışır?
Metin tabanlı matematik CAPTCHA akışı
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
Görüntü tabanlı matematik CAPTCHA akışı
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
Otomasyonda matematik CAPTCHA'larını algılama
Python tespiti
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 tespiti
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);
OCR ile matematik CAPTCHA'larını çözme
Matematik CAPTCHA'ları denklemi bir görüntü olarak oluşturduğunda, OCR metni çıkarır ve basit bir ayrıştırıcı yanıtı hesaplar.
Görüntü tabanlı matematik CAPTCHA'ları için CaptchaAI kullanma
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
Matematik CAPTCHA'lar ve diğer CAPTCHA türleri
| Özellik | Matematik CAPTCHA'ları | reCAPTCHA v2 | hCaptcha | Kaydırma CAPTCHA'ları |
|---|---|---|---|---|
| Kullanıcı sürtünmesi | Düşük (hızlı zihinsel matematik) | Orta (resim seçimi) | Orta (resim seçimi) | Düşük (tek sürükleme) |
| Bot direnci | Çok düşük | Yüksek | Yüksek | Orta |
| Erişilebilirlik | İyi (metin tabanlı versiyonlar) | Zayıf (görmeye bağlı) | Zayıf (görmeye bağlı) | Zayıf (motora bağlı) |
| Maliyet | Ücretsiz (kendi kendine barındırılan) | Ücretsiz katman mevcut | Ücretsiz katman mevcut | Değişir |
| Ortak kullanım | WordPress, iletişim formları | Giriş yap, kayıt ol | Giriş yap, kayıt ol | E-ticaret, Asya |
Neden matematik CAPTCHA'ları hala kullanılıyor?
- Basitlik — Harici API bağımlılığı yok, JavaScript SDK'sı yok
- WordPress eklentileri — "Math CAPTCHA" ve "Really Simple CAPTCHA" gibi eklentiler yaygın olarak kuruludur
- Düşük sürtünme — Kullanıcılar basit matematiğe resim seçiminden daha hızlı ulaşır
- Erişilebilirlik — Metin tabanlı matematik CAPTCHA'ları ekran okuyucularla çalışır (resim CAPTCHA'larından farklı olarak)
- Eski sistemler — Modern CAPTCHA hizmetlerinden önceki eski uygulamalar
Sık sorulan sorular
Matematik CAPTCHA'ları botlara karşı etkili midir?
Düz metin matematik CAPTCHA'ları, HTML'yi ayrıştırabilen herhangi bir bot tarafından önemsiz bir şekilde atlanır. Görüntü tabanlı matematik CAPTCHA'ları biraz daha zordur ancak OCR ile kolayca çözülür. Matematik CAPTCHA'ları yalnızca en temel spam botlara karşı etkilidir. Ciddi bot koruması için reCAPTCHA veya Cloudflare Turnstile gibi davranışsal bir CAPTCHA sistemi kullanın.
Otomasyonda görüntü tabanlı matematik CAPTCHA'larını nasıl çözerim?
Denklemi görüntüden çıkarmak için CaptchaAI gibi bir OCR hizmeti kullanın, ardından yanıtı programlı olarak ayrıştırıp hesaplayın. CaptchaAI, matematik denklemi görüntüleri de dahil olmak üzere 27.500'den fazla görüntü CAPTCHA türünü destekler.
Metin tabanlı matematik CAPTCHA'ları OCR olmadan çözülebilir mi?
Evet. Denklem HTML metni (görüntü değil) olarak oluşturulmuşsa, normal ifadeyi veya DOM ayrıştırmayı kullanarak denklemi doğrudan sayfa kaynağından ayrıştırabilirsiniz. Metin tabanlı matematik CAPTCHA'ları için OCR'ye gerek yoktur.
Matematik CAPTCHA'larına en iyi alternatif nedir?
Güçlü bot tespiti ile düşük sürtünme istiyorsanız Cloudflare Turnstile en iyi alternatiftir. Görünmez bir şekilde çalışır ve kullanıcı etkileşimi gerektirmez. Daha yüksek güvenlik için puana dayalı değerlendirmeye sahip reCAPTCHA v3 etkilidir.
Özet
Matematik ve mantık CAPTCHA'ları, WordPress iletişim formlarında ve eski sistemlerde yaygın olarak bulunan en basit zorluk türüdür. Metin tabanlı sürümler doğrudan HTML'den ayrıştırılabilir. Görüntü tabanlı sürümler, denklemi okumak için OCR'yi ve ardından cevabı hesaplamak için basit aritmetiği gerektirir. Görüntü tabanlı matematik CAPTCHA'ları için şunu kullanın:CaptchaAI Görüntü OCR API'siDenklemi çıkarmak ve çözmek için. Atlanması kolay olsa da, matematik CAPTCHA'ları basitlikleri ve erişilebilirlik avantajları nedeniyle popüler olmaya devam ediyor.