Phân Tích Kỹ Thuật

Giải quyết phương tiện CAPTCHA là gì

Solve Media CAPTCHA (hiện là một phần của Permit.io / Radius Networks) là một CAPTCHA dựa trên quảng cáo thay thế văn bản ngẫu nhiên bị bóp méo bằng thông điệp và khẩu hiệu thương hiệu. Thay vì nhập "aX3kP", người dùng đã nhập một cụm từ dễ nhận biết như "Chất lượng mà bạn có thể tin cậy".

Mặc dù ngày nay Solve Media ít phổ biến hơn nhưng nó vẫn xuất hiện trên một số trang web. Nó hoạt động giống như một CAPTCHA văn bản tiêu chuẩn và có thể được giải bằng cách tiếp cận OCR hình ảnh tương tự.


Cách Solve Media hoạt động

  1. Tiện ích tải và hiển thị thông báo quảng cáo dưới dạng hình ảnh
  2. Người dùng đọc cụm từ thương hiệu và gõ vào ô nhập liệu
  3. Phản hồi được xác minh bởi máy chủ của Solve Media
  4. Nếu đúng, việc gửi biểu mẫu sẽ được tiến hành
┌─────────────────────────────────┐
│                                 │
│   "Taste The Rainbow"           │
│                                 │
├─────────────────────────────────┤
│ Type the phrase: [____________] │
│                     [Verify]    │
└─────────────────────────────────┘

Giải quyết phương tiện và văn bản chuẩn CAPTCHA

tính năng Giải quyết phương tiện CAPTCHA văn bản chuẩn
Nội dung văn bản Cụm từ thương hiệu, từ tiếng Anh Ký tự ngẫu nhiên
Khả năng đọc Cao (có nghĩa là có thể đọc được) Thấp (có nghĩa là khó khăn)
Biến dạng Tối thiểu Nặng
Mô hình doanh thu Quảng cáo không có
Khó khăn cho OCR Dễ dàng (văn bản rõ ràng) Cứng (méo)
Trải nghiệm người dùng Tốt hơn (các từ có thể nhận biết được) Tệ hơn (khó đọc)

Xác định phương tiện giải quyết trên một trang

Hãy tìm những dấu hiệu này:

<!-- 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" />

Các phần tử có ID bắt đầu bằng adcopy- hoặc solvemedia biểu thị Solve Media CAPTCHA.


Giải quyết phương tiện với CaptchaAI

Vì Solve Media hiển thị văn bản trong hình ảnh nên có thể giải quyết vấn đề này bằng phương pháp OCR hình ảnh tiêu chuẩn:

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');
}

Những cân nhắc chính

Mẹo tại sao
Đặt phrase=1 Giải các cụm từ Media chứa dấu cách
Đặt numeric=2 Cụm từ thường chỉ có chữ cái
Không đặt min_len/1ZZ Độ dài cụm từ thay đổi
Giữ nguyên trường hợp Một số triển khai không phân biệt chữ hoa chữ thường

Câu hỏi thường gặp

Solve Media vẫn hoạt động phải không?

Solve Media đã được mua lại và đổi tên thương hiệu. Một số cách triển khai cũ vẫn tồn tại trên các trang web cũ nhưng hiếm khi triển khai mới.

Tại sao Solve Media dễ giải quyết hơn reCAPTCHA?

Solve Media được thiết kế để có thể đọc được — đó là một sản phẩm quảng cáo, không phải sản phẩm bảo mật. Văn bản được cố ý rõ ràng để người dùng có thể đọc được thông điệp thương hiệu.

Tôi có thể giải quyết Solve Media mà không cần OCR không?

Trong một số trường hợp, văn bản cụm từ có sẵn trong nguồn trang hoặc phản hồi API, khiến việc trích xuất hình ảnh trở nên không cần thiết. Kiểm tra trường ẩn adcopy_challenge.

CaptchaAI có phương pháp Solve Media chuyên dụng không?

Không. Sử dụng phương pháp OCR hình ảnh tiêu chuẩn (method=base64 hoặc method=post) với phrase=1.


Hướng dẫn liên quan

Os comentários estão desativados para este artigo.