Teknik Açıklamalar

Matematik ve Mantık CAPTCHA Türlerinin Açıklaması

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?

  1. Basitlik — Harici API bağımlılığı yok, JavaScript SDK'sı yok
  2. WordPress eklentileri — "Math CAPTCHA" ve "Really Simple CAPTCHA" gibi eklentiler yaygın olarak kuruludur
  3. Düşük sürtünme — Kullanıcılar basit matematiğe resim seçiminden daha hızlı ulaşır
  4. Erişilebilirlik — Metin tabanlı matematik CAPTCHA'ları ekran okuyucularla çalışır (resim CAPTCHA'larından farklı olarak)
  5. 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.

İlgili Makaleler

Bu makale için yorumlar devre dışı bırakılmıştır.