Solve Media CAPTCHA (jetzt Teil von Permit.io / Radius Networks) war ein werbebasiertes CAPTCHA, das verzerrten Zufallstext durch Markenbotschaften und Slogans ersetzte. Anstatt „aX3kP“ einzugeben, gaben Benutzer einen erkennbaren Satz wie „Qualität, der Sie vertrauen können“ ein.
Obwohl Solve Media heutzutage weniger verbreitet ist, erscheint es immer noch auf einigen Websites. Es funktioniert wie ein Standard-Text-CAPTCHA und kann mit demselben Bild-OCR-Ansatz gelöst werden.
So funktioniert Solve Media
- Das Widget lädt und zeigt eine Werbebotschaft als Bild an
- Der Benutzer liest den Markensatz und gibt ihn in das Eingabefeld ein
- Die Antwort wird von den Servern von Solve Media überprüft
- Wenn das Formular korrekt ist, wird mit der Übermittlung des Formulars fortgefahren
┌─────────────────────────────────┐
│ │
│ "Taste The Rainbow" │
│ │
├─────────────────────────────────┤
│ Type the phrase: [____________] │
│ [Verify] │
└─────────────────────────────────┘
Lösen Sie Medien- und Standardtext-CAPTCHAs
| Funktion | Medien lösen | Standardtext-CAPTCHA |
|---|---|---|
| Textinhalt | Markenphrasen, englische Wörter | Zufällige Zeichen |
| Lesbarkeit | Hoch (soll lesbar sein) | Niedrig (soll schwer sein) |
| Verzerrung | Minimal | Schwer |
| Erlösmodell | Werbung | Keine |
| Schwierigkeiten bei der OCR | Einfach (sauberer Text) | Hart (verzerrt) |
| Benutzererfahrung | Besser (erkennbare Wörter) | Schlimmer (schwer zu lesen) |
Identifizieren von Lösungsmedien auf einer Seite
Suchen Sie nach diesen Markierungen:
<!-- Solve Media script -->
<script src="https://api.solvemedia.com/papi/challenge.script"></script>
<!-- Widget container -->
<div id="adcopy-outer"></div>
<!-- Hidden response fields -->
<input type="hidden" name="adcopy_challenge" />
<input type="hidden" name="adcopy_response" />
Elemente mit IDs, die mit adcopy- oder solvemedia beginnen, weisen auf Solve Media CAPTCHA hin.
Lösen von Medien mit CaptchaAI
Da Solve Media Text in einem Bild anzeigt, kann er mit der Standard-OCR-Methode für Bilder gelöst werden:
Python
import requests
import time
import base64
API_KEY = "YOUR_API_KEY"
# Capture the CAPTCHA image
# Method 1: Screenshot the widget
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get("https://example.com/page-with-solvemedia")
captcha_img = driver.find_element(By.CSS_SELECTOR, "#adcopy-puzzle-image img")
captcha_img.screenshot("solvemedia.png")
# Submit to CaptchaAI
with open("solvemedia.png", "rb") as f:
img_b64 = base64.b64encode(f.read()).decode()
response = requests.post("https://ocr.captchaai.com/in.php", data={
"key": API_KEY,
"method": "base64",
"body": img_b64,
"phrase": 1, # Contains spaces (multi-word phrase)
"json": 1
})
task_id = response.json()["request"]
# Poll for solution
for _ in range(30):
time.sleep(5)
result = requests.get("https://ocr.captchaai.com/res.php", params={
"key": API_KEY, "action": "get", "id": task_id, "json": 1
}).json()
if result.get("status") == 1:
text = result["request"]
print(f"Phrase: {text}")
break
# Type the phrase
driver.find_element(By.CSS_SELECTOR, "#adcopy_response").send_keys(text)
driver.find_element(By.CSS_SELECTOR, "form").submit()
Node.js
const axios = require('axios');
const fs = require('fs');
async function solveSolveMedia(imagePath) {
const imageB64 = fs.readFileSync(imagePath).toString('base64');
const submit = await axios.post('https://ocr.captchaai.com/in.php', null, {
params: {
key: 'YOUR_API_KEY',
method: 'base64',
body: imageB64,
phrase: 1,
json: 1
}
});
const taskId = submit.data.request;
for (let i = 0; i < 30; i++) {
await new Promise(r => setTimeout(r, 5000));
const res = await axios.get('https://ocr.captchaai.com/res.php', {
params: { key: 'YOUR_API_KEY', action: 'get', id: taskId, json: 1 }
});
if (res.data.status === 1) return res.data.request;
}
throw new Error('Timeout');
}
Wichtige Überlegungen
| Tipp | Warum |
|---|---|
Legen Sie phrase=1 fest |
Lösen Sie Medienphrasen, die Leerzeichen enthalten |
Legen Sie numeric=2 fest |
Phrasen bestehen normalerweise nur aus Buchstaben |
Legen Sie nicht min_len/BEISPIEL_TOKEN fest |
Die Phrasenlänge variiert |
| Lassen Sie die Hülle unverändert | Bei einigen Implementierungen wird die Groß-/Kleinschreibung nicht beachtet |
FAQ
Ist Solve Media noch aktiv?
Solve Media wurde übernommen und umbenannt. Einige Legacy-Implementierungen sind auf älteren Websites noch vorhanden, neue Implementierungen sind jedoch selten.
Warum ist Solve Media einfacher zu lösen als reCAPTCHA?
Solve Media wurde so konzipiert, dass es lesbar ist – es war ein Werbeprodukt, kein Sicherheitsprodukt. Der Text war bewusst klar gehalten, damit Benutzer die Markenbotschaft lesen konnten.
Kann ich Solve Media ohne OCR lösen?
In einigen Fällen ist der Phrasentext in der Seitenquelle oder der API-Antwort verfügbar, sodass eine Bildextraktion nicht erforderlich ist. Überprüfen Sie das ausgeblendete Feld adcopy_challenge.
Verfügt CaptchaAI über eine spezielle Solve Media-Methode?
Nein. Verwenden Sie die Standard-OCR-Methode für Bilder (method=base64 oder method=post) mit phrase=1.