UNLOCK API
Amazon AWS WAF

Amazon AWS WAF

Cara menghantar tugas Amazon AWS WAF ke UNLOCK API dengan createTask atau in.php: nama jenis tugas, setiap parameter, objek solution, medan proxy dan contoh kod dalam 7 bahasa.
Harga
$0.70 $0.0007 setiap tugas
Anda hantar
URL halaman, site key WAF dan nilai iv serta context dari halaman challenge
Anda terima
Nilai untuk kuki aws-waf-token

Ringkasan dan harga

Nama jenis tugas

Gunakan nama pertama untuk menyelesaikan tanpa proxy. Gunakan nama kedua dan tambah medan proxy untuk menyelesaikan melalui proxy anda sendiri. Harganya sama.
AmazonTaskProxylessTanpa proxy
AmazonTaskMelalui proxy anda

Turut diterima: AntiAwsWafTaskProxyless, AntiAwsWafTask

Objek task

type
StringWajib
Nama jenis tugas. Dipadankan tanpa mengira huruf besar atau kecil. AmazonTaskProxyless | AmazonTask
websiteURL
StringWajib
Alamat penuh halaman tempat CAPTCHA dipaparkan, bermula dengan http:// atau https://.
websiteKey
StringWajib
Site key widget CAPTCHA, terdapat dalam sumber halaman (contohnya data-sitekey).
iv
StringWajib
Nilai iv daripada halaman AWS WAF.
context
StringWajib
Nilai context daripada halaman AWS WAF.
challengeScript
StringPilihan
Alamat skrip challenge.js.
captchaScript
StringPilihan
Alamat skrip captcha.js.

Medan yang tidak disenaraikan di sini dihantar kepada penyelesai seperti yang dihantar.

Medan proxy

Hanya untuk nama jenis proxy. Hantar sama ada medan berasingan atau satu rentetan proxy.
proxyType
StringWajib
http, https, socks4 atau socks5.
proxyAddress
StringWajib
Alamat IP atau nama host proxy.
proxyPort
IntegerWajib
Port proxy.
proxyLogin
StringPilihan
Nama pengguna proxy, jika proxy memerlukannya.
proxyPassword
StringPilihan
Kata laluan proxy, jika proxy memerlukannya.
proxy
String
Semua medan proxy dalam satu rentetan, contohnya http://user:pass@1.2.3.4:8080.

Menggunakan proxy

Permintaan

POST /createTask
{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "AmazonTaskProxyless",
    "websiteURL": "https://example.com/login",
    "websiteKey": "AQIDAHjcYu/GjX+QlghicBgQ/7bFaQZ+m5FKCMDnO+vTbNg96AH...",
    "iv": "CgAFRjIw2vAAABSM",
    "context": "zPT0jOl1rQlUNaldX6LUpn4D6Tl9bJ8VUQ..."
  }
}

Objek solution

Dipulangkan dalam solution apabila status ialah ready.
captcha_voucher
String
Captcha voucher AWS WAF.
existing_token
String
Token AWS WAF. Hantar sebagai cookie aws-waf-token.
POST /getTaskResult
{
  "errorId": 0,
  "taskId": 1001,
  "status": "ready",
  "solution": {
    "captcha_voucher": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
    "existing_token": "f8ab5749-f916-4d29-91ff-a2b8c1e5d2a7:EQoAf0APpGIKAAAA..."
  },
  "cost": "0.0007",
  "createTime": 1791640000,
  "endTime": 1791640014,
  "solveCount": 1
}

Contoh kod

import time, requests

API = "https://unlock-api.com"
KEY = "YOUR_API_KEY"

task = requests.post(f"{API}/createTask", json={
    "clientKey": KEY,
    "task": {
      "type": "AmazonTaskProxyless",
      "websiteURL": "https://example.com/login",
      "websiteKey": "AQIDAHjcYu/GjX+QlghicBgQ/7bFaQZ+m5FKCMDnO+vTbNg96AH...",
      "iv": "CgAFRjIw2vAAABSM",
      "context": "zPT0jOl1rQlUNaldX6LUpn4D6Tl9bJ8VUQ..."
    }
}).json()
if task["errorId"]:
    raise SystemExit(task["errorCode"])

for _ in range(60):   # 60 x 5 s = the 5 minute task limit
    time.sleep(5)
    r = requests.post(f"{API}/getTaskResult", json={"clientKey": KEY, "taskId": task["taskId"]}).json()
    if r["errorId"]:
        raise SystemExit(f"{r['errorCode']}: {r.get('errorDescription', '')}")   # failed tasks are refunded
    if r["status"] == "ready":
        print(r["solution"])
        break
else:
    raise SystemExit("timed out")

Kaedah borang in.php

Tugas yang sama dengan permintaan borang klasik. res.php memulangkan jawapan sebagai teks.
in.php, res.php
curl -s "https://unlock-api.com/in.php" -d "key=YOUR_API_KEY&method=amazon_waf&sitekey=KEY&iv=IV&context=CONTEXT&pageurl=https://example.com/login&json=1"
# {"status":1,"request":"1001"}

curl -s "https://unlock-api.com/res.php?key=YOUR_API_KEY&action=get&id=1001&json=1"
# {"status":0,"request":"CAPCHA_NOT_READY"}  then  {"status":1,"request":"ANSWER"}

API borang: in.php dan res.php