داخلية كلاودفلير تيرنستايل: كيف يعمل نظام مكافحة البوتات وكيفية التعامل معه

تحليل تقني عميق لداخلية كلاودفلير تيرنستايل وكيف تحسب درجة الثقة عبر JA4 وبصمة المتصفح وسمعة IP، مع دليل عملي لاستخدام البروكسيات السكنية لاجتياز التحديات بشكل مشروع.

Cloudflare Turnstile Internals: How the 2026 Trust Score Works and How Legitimate Automation Passes

ما هي داخلية كلاودفلير تيرنستايل: تحدٍ غير مرئي متعدد الطبقات

إذا سبق وأن واجهت صفحة فارغة مع رسالة "Checking your browser" أثناء محاولتك الوصول البرمجي إلى بيانات عامة، فأنت لست وحدك. داخلية كلاودفلير تيرنستايل (Cloudflare Turnstile Internals) تمثل الطبقة الأكثر تعقيداً في نظام مكافحة البوتات الحديث، وتعتمد على تحدٍ غير مرئي يجمع بين JavaScript وإثبات العمل (Proof-of-Work) وبصمة المتصفح. تنبيه قانوني: هذه المعلومات مخصصة للبحث الأمني المرخص وأتمتة الوصول إلى البيانات العامة المشروعة. استخدامها لانتحال الهوية أو تخطي مصادقة غير مصرح بها قد ينتهك قانون الاحتيال وإساءة استخدام الكمبيوتر (CFAA) في الولايات المتحدة أو اللائحة العامة لحماية البيانات (GDPR) في الاتحاد الأوروبي.

عندما يصادف Cloudflare طلباً مشبوهاً، لا يعرض تحدٍ CAPTCHA تقليدياً. بدلاً من ذلك، يُنفذ ما يُعرف بـ "التحدي المُدار" (Managed Challenge) — وهي سلسلة من الفحوصات غير المرئية التي تعمل في الخلفية. تشمل هذه الفحوصات:

  • تحميل JavaScript مُشفر: يُرسل Cloudflare حزمة JavaScript مُلّبسة (obfuscated) تُنفّذ في المتصفح وتجمع إشارات بيئية متنوعة. الكود يتغير بشكل دوري لمنع الهندسة العكسية السهلة.
  • إثبات العمل (Proof-of-Work): يُطلب من المتصفح حل لغز تشفيري يتطلب استهلاك وحدة المعالجة المركزية (CPU) — عادةً ما يستغرق بين 100 و500 مللي ثانية على جهاز حديث، لكنه يستغرق وقتاً أطول بكثير على خوادم البوتات منخفضة المواصفات. الصعوبة تتكيف ديناميكياً مع مستوى الشبهة.
  • فحوصات واجهة برمجة المتصفح (Browser API Probes): يتحقق الـ JavaScript من وجود واجهات مثل navigator.webdriver (يجب أن تكون false أو undefined في المتصفح الحقيقي) وwindow.chrome (كائن موجود فقط في Chromium) وNotification.permission وخصائص WebGLRenderingContext وOfflineAudioContext.
  • إشارات الأداء: قياس performance.now() دقة المؤقت، وnavigator.hardwareConcurrency عدد النوى، وdevicePixelRatio كثافة البكسل.

عند نجاح هذه الفحوصات، يُصدر Cloudflare ملف تعريف ارتباط يُسمى cf_clearance. هذا الملف هو "بطاقة عبور" تسمح للعميل بتجاوز التحديات اللاحقة لفترة محدودة — عادةً بين 30 دقيقة و24 ساعة حسب إعدادات الموقع. لكن النقطة الحرجة هي أن cf_clearance مرتبط بشكل صارم بـ User-Agent وعنوان IP. أي تغيير في أحدهما يؤدي إلى رفض الملف فوراً. يمكن الاطلاع على التفاصيل الرسمية في وثائق Cloudflare Turnstile الرسمية.

درجة الثقة رباعية الإشارات في Cloudflare Bot Management

خلف Turnstile، يعمل نظام Cloudflare Bot Management الذي يحسب درجة ثقة (Trust Score) لكل اتصال وارد بناءً على أربع إشارات رئيسية. لا تُكشف هذه الإشارات بشكل علني، لكن البحث الأمني والهندسة العكسية كشفت بنيتها العامة. فهم هذه الإشارات ضروري لأي مهندس scraping أو باحث أمني يتعامل مع cloudflare bot management ja4.

1. بصمة JA4 لـ TLS

JA4 هي الجيل الأحدث من بصمات TLS، وتحل محل JA3 القديم. الفرق الجوهري هو أن JA4 يُصنّف امتدادات TLS (extensions) أبجدياً قبل تجزئتها (hashing)، مما يجعل البصمة أكثر استقراراً وقابلية للمقارنة عبر الإصدارات. تتكون بصمة JA4 من عدة حقول مفصولة بشرطات:

# بصمة JA4 لـ Chrome 120 على macOS:
t13d1516h2_8daaf6152771_b186095e22b6

# بصمة JA4 لـ Firefox 121:
t13d1716h2_027e2f3a38b6_97e7e669ec88

# بصمة JA4 لـ Python requests (OpenSSL):
t13d1716h2_8daaf6152771_b0daa7e22b6c

الحقل الأول (t13d1516h2) يشفر: إصدار TLS (t13 = TLS 1.3)، نوع المصافحة (d = اختيار SNI)، عدد التشفيرات (15)، عدد الامتدادات (16)، وبروتوكولات التطبيق (h2 = HTTP/2). الجزء الثاني هو تجزئة SHA256 (مقتطعة إلى 16 حرفاً) لقائمة التشفيرات (cipher suites) المرتبة. الجزء الثالث هو تجزئة قائمة الامتدادات المرتبة أبجدياً. لمزيد من التفاصيل التقنية، راجع مواصفات JA4 على GitHub.

الاختلافات الجوهرية بين المتصفحات ومكتبات HTTP تشمل:

  • ترتيب التشفيرات: Chrome يفضل TLS_AES_128_GCM_SHA256 أولاً، بينما OpenSSL يرتبها بشكل مختلف.
  • الامتدادات: Chrome يرسل application_settings وencrypted_client_hello بينما تفتقر إليها معظم مكتبات Python.
  • المنحنيات الإهليلجية: Chrome يرسل x25519 وsecp256r1 وsecp384r1 بترتيب محدد.

2. إعدادات HTTP/2 (SETTINGS frame)

كل عميل HTTP/2 يرسل إطار SETTINGS في بداية الاتصال يحتوي على معلمات تكوين. هذه القيم تختلف بين المتصفحات ومكتبات HTTP، مما يخلق "بصمة بروتوكول" إضافية يصعب تزييفها:

  • HEADER_TABLE_SIZE — حجم جدول الترويسات الديناميكي (عادةً 65536 في Chrome، 4096 في Python hyper)
  • ENABLE_PUSH — تفعيل دفع الخادم (0 في المتصفحات الحديثة)
  • INITIAL_WINDOW_SIZE — حجم نافذة التدفق الأولي (1048576 في Chrome، 4194304 في Firefox، 65535 في بعض مكتبات Python)
  • MAX_CONCURRENT_STREAMS — الحد الأقصى للتدفقات المتزامنة (1000 في Chrome، 256 في httpx)

حتى لو نجحت في تزييف JA4، فإن إطار SETTINGS غير المتطابق سيكشف التناقض. بعض الأدوات مثل curl-impersonate تحاول محاكاة هذه القيم، لكنها لا تزال تفتقر إلى بصمة المتصفح الكاملة.

3. بصمة المتصفح (Browser Fingerprint)

عبر JavaScript، يجمع Cloudflare بصمة فريدة من المتصفح تشمل عدة طبقات:

  • Canvas Fingerprint: رسم نص بأخطاف محددة على عنصر <canvas> واستخراج بكسلاته عبر toDataURL() — يختلف بين المتصفحات وبطاقات الرسومات بسبب اختلافات في محرك العرض (rendering engine). راجع وثائق Canvas API على MDN للتفاصيل.
  • WebGL Fingerprint: معلومات من WEBGL_debug_renderer_info تكشف عن بائع ونموذج بطاقة الرسومات (مثل Google Inc. (Intel) مقابل NVIDIA Corporation).
  • AudioContext Fingerprint: معالجة إشارة صوتية عبر OfflineAudioContext وإخراج قيمة عائمة (float) فريدة لكل جهاز — نتيجة اختلافات في تنفيذ DSP بين المتصفحات والأنظمة.
  • إشارات سلوكية: سرعة تحريك الماوس، أنماط النقر، ووقت الاستجابة بين الأحداث. البوتات تتحرك بشكل خطي ومثالي بينما البشر يتحركون بشكل غير منتظم.
  • خصائص الشاشة: screen.width وscreen.height وscreen.colorDepth وwindow.devicePixelRatio.

4. سمعة عنوان IP (IP Reputation)

يحتفظ Cloudflare بقاعدة بيانات ضخمة لسمعة عناوين IP، تصنفها حسب:

  • نوع IP: سكني (residential)، مركز بيانات (datacenter)، جوال (mobile)
  • الـ ASN (رقم نظام الحكم الذاتي) وسجل الحظر التاريخي
  • معدل الطلبات من نفس IP في الفترات الأخيرة
  • الاشتراك في قوائم الحظر العامة (blacklists) مثل Spamhaus

عناوين مراكز البيانات (مثل AS14618 لـ AWS، AS15169 لـ Google Cloud) تحصل تلقائياً على درجة ثقة منخفضة، بينما عناوين مزودي خدمات الإنترنت السكنية تحصل على درجة أعلى. هذا هو السبب الأساسي لاستخدام البروكسيات السكنية.

الإشارة الوزن التقريبي قابلية التزييف أداة الكشف
JA4 TLS عالٍ صعبة (تتطلب مكتبة TLS مخصصة) مصافحة TLS
HTTP/2 SETTINGS متوسط متوسطة (تتطلب تعديل إطار SETTINGS) إطار اتصال HTTP/2
بصمة المتصفح عالٍ جداً صعبة (تتطلب متصفحاً حقيقياً) JavaScript challenge
سمعة IP عالٍ تتطلب بروكسي سكني قاعدة بيانات السمعة

لماذا يتم رفض اتصال Python يدّعي أنه Chrome فوراً

هنا يكمن جوهر المشكلة: حتى لو ضبطت User-Agent في طلب Python ليطابق Chrome تماماً، فإن Cloudflare يرى التناقض فوراً. السبب؟ JA4 لا يكذب. بينما يمكن تزييف الترويسات (headers) بسهولة، فإن مصافحة TLS تحدث قبل إرسال أي ترويسة HTTP — لذا فإن بصمة TLS هي أول ما يراه الخادم.

عندما يرسل requests أو httpx في Python طلباً، يستخدم مكتبة urllib3 التي بدورها تستخدم OpenSSL للمصافحة. ترتيب التشفيرات وامتدادات TLS في هذه المكتبات يختلف جذرياً عن Chrome:

# JA4 لـ Chrome 120 على macOS:
t13d1516h2_8daaf6152771_b186095e22b6

# JA4 لـ Python requests (OpenSSL 3.x):
t13d1716h2_8daaf6152771_b0daa7e22b6c

الاختلافات المحددة تشمل:

  • ترتيب التشفيرات: Chrome يرسل TLS_AES_128_GCM_SHA256 ثم TLS_CHACHA20_POLY1305_SHA256 ثم TLS_AES_256_GCM_SHA384. OpenSSL قد يرتبها بشكل مختلف.
  • الامتدادات: Chrome يرسل application_settings (ALPS) وencrypted_client_message بينما تفتقر إليها مكتبات Python القياسية.
  • ALPN: Chrome يتفاوض على h2,http/1.1 بترتيب محدد، بينما قد يرسل Python http/1.1 فقط أو ترتيباً مختلفاً.
  • إطار SETTINGS: قيم INITIAL_WINDOW_SIZE وHEADER_TABLE_SIZE في Python تختلف عن Chrome. على سبيل المثال، Python httpx يرسل INITIAL_WINDOW_SIZE بقيمة 65535 بينما Chrome يرسل 1048576.

النتيجة: Cloudflare يرى طلباً يدّعي أنه Chrome في الترويسات، لكن JA4 يقول إنه Python. هذا التناقض يرفع درجة الشبهة إلى الحد الأقصى ويُفعّل التحدي فوراً. محاولة cloudflare turnstile bypass عبر مجرد تغيير User-Agent مستحيلة — النظام يعتمد على إشارات طبقة النقل (transport layer) قبل أي ترويسة HTTP.

حتى الأدوات المتقدمة مثل curl-impersonate التي تحاول محاكاة JA4 بشكل دقيق تواجه مشكلة بصمة JavaScript — فالـ PoW وبصمة Canvas تتطلب محرك JavaScript حقيقياً.

لماذا تحتاج إلى بروكسيات سكنية لـ cf_clearance

حتى لو نجحت في اجتياز التحدي باستخدام متصفح حقيقي، هناك فخ آخر: cf_clearance cookie مرتبط بعنوان IP. إذا حصلت على الملف من عنوان IP ثم أرسلت الطلبات اللاحقة من عنوان مختلف، يُرفض الملف فوراً. هذا التصميم يمنع إعادة توزيع الملفات عبر مجموعات بروكسي متغيرة.

هذا يعني أن:

  1. تحتاج إلى عنوان IP واحد وثابت طوال جلسة العمل
  2. يجب أن يكون هذا الـ IP من مصدر موثوق (سكني، وليس مركز بيانات)
  3. إذا انقطع الاتصال وتغير الـ IP، يجب إعادة الحصول على cf_clearance من جديد
  4. معدل الطلبات من نفس IP يجب أن يبدو بشرياً (1-5 طلبات في الثانية كحد أقصى)

هنا تبرز أهمية البروكسيات السكنية. البروكسيات السكنية توفر عناوين IP من مزودي خدمات إنترنت حقيقيين (ISP)، مما يعطيها سمعة عالية في نظام Cloudflare. بالمقابل، عناوين مراكز البيانات تُعتبر مشبوهة تلقائياً:

المعيار بروكسيات سكنية بروكسيات مراكز بيانات بروكسيات جوالة
سمعة IP عالية (ISP حقيقي) منخفضة (ASN معروف) عالية جداً
ثبات IP عالٍ مع الجلسات اللاصقة عالٍ متغير
ملاءمة لـ cf_clearance مثالية ضعيفة (تُحجب غالباً) جيدة لكن مكلفة
زمن الاستجابة 50-200 مللي ثانية 10-50 مللي ثانية 100-500 مللي ثانية
التكلفة النسبية متوسطة منخفضة مرتفعة

البروكسيات السكنية مع جلسات لاصقة (sticky sessions) هي الحل الأمثل: تحصل على عنوان IP سكني واحد يبقى ثابتاً طوال الجلسة، مما يضمن أن cf_clearance cookie يظل صالحاً. يمكن استكشاف مواقع ProxyHat المتاحة على صفحة المواقع لاختيار الموقع الجغرافي المناسب.

تطبيق عملي: استخدام ProxyHat مع جلسات لاصقة

الحل العملي لاجتياز turnstile internals بشكل مشروع يتطلب مزيجاً من: (1) متصفح حقيقي أو أداة أتمتة متصفح، (2) بروكسي سكني ثابت، و(3) إعادة استخدام cf_clearance عبر الطلبات اللاحقة. إليك الخطوات بالتفصيل:

الخطوة 1: الحصول على cf_clearance باستخدام متصفح حقيقي عبر ProxyHat

استخدم ProxyHat بجلسة لاصقة لضمان ثبات عنوان IP. اسم المستخدم يحتوي على معرّف الجلسة الذي يربط جميع الطلبات بنفس عنوان IP السكني:

# curl عبر ProxyHat مع جلسة لاصقة
curl -x http://user-session-abc123:pass@gate.proxyhat.com:8080 \
  -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36' \
  -c cookies.txt \
  'https://example.com/'

في هذا المثال، session-abc123 يضمن أن جميع الطلبات تخرج من نفس عنوان IP السكني. الملف cookies.txt سيحتوي على cf_clearance بعد اجتياز التحدي. لكن لاحظ أن curl وحده لا يمكنه تنفيذ JavaScript challenge — تحتاج متصفحاً حقيقياً.

الخطوة 2: استخدام متصفح حقيقي للأتمتة

للحصول على cf_clearance، يجب استخدام متصفح حقيقي (مثل Playwright أو Puppeteer مع Chromium) لأن JavaScript challenge يتطلب محرك JavaScript حقيقياً ينفذ PoW ويولد بصمة Canvas/WebGL/Audio صحيحة:

# Python مع Playwright عبر ProxyHat
from playwright.sync_api import sync_playwright

proxy = {
    'server': 'http://gate.proxyhat.com:8080',
    'username': 'user-session-abc123',
    'password': 'pass'
}

with sync_playwright() as p:
    browser = p.chromium.launch(
        headless=False,
        proxy=proxy
    )
    context = browser.new_context()
    page = context.new_page()
    page.goto('https://example.com/')
    
    # انتظار اجتياز التحدي (5 ثوانٍ)
    page.wait_for_timeout(5000)
    
    # استخراج cookies
    cookies = context.cookies()
    for cookie in cookies:
        if cookie['name'] == 'cf_clearance':
            print('cf_clearance:', cookie['value'])
    
    browser.close()

النقطة الحرجة هنا هي استخدام نفس معرّف الجلسة (session-abc123) في جميع الطلبات اللاحقة لضمان ثبات IP.

الخطوة 3: إعادة استخدام cf_clearance مع نفس البروكسي

بعد الحصول على cf_clearance، يمكنك استخدامه مع طلبات HTTP العادية — بشرط استخدام نفس عنوان IP ونفس User-Agent:

# Python requests مع إعادة استخدام cf_clearance
import requests

proxies = {
    'http': 'http://user-session-abc123:pass@gate.proxyhat.com:8080',
    'https': 'http://user-session-abc123:pass@gate.proxyhat.com:8080'
}

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
    'Cookie': 'cf_clearance=YOUR_TOKEN_HERE'
}

response = requests.get(
    'https://example.com/api/data',
    headers=headers,
    proxies=proxies
)
print('Status:', response.status_code)

الخطوة 4: Node.js مع SOCKS5

للاتصالات التي تتطلب SOCKS5 (مثلاً لتجنب بعض أنظمة فحص HTTP proxy)، استخدم المنفذ 1080:

// Node.js مع SOCKS5 عبر ProxyHat
const { SocksProxyAgent } = require('socks-proxy-agent');
const https = require('https');

const agent = new SocksProxyAgent(
    'socks5://user-session-abc123:pass@gate.proxyhat.com:1080'
);

https.get('https://example.com/', { agent }, (res) => {
    let data = '';
    res.on('data', chunk => data += chunk);
    res.on('end', () => console.log(data));
});

للاطلاع على خيارات التسعير والباقات المناسبة، زر صفحة التسعير. وللاطلاع على وثائق API الكاملة، راجع وثائق ProxyHat.

الأخطاء الشائعة وحالات الحافة

1. تغيير User-Agent بين الطلبات

cf_clearance مرتبط بـ User-Agent. إذا حصلت على الملف باستخدام UA معين ثم غيرته، يُرفض الملف. احفظ UA واستخدمه بالضبط في جميع الطلبات اللاحقة — حتى اختلاف في إصدار Chrome (120 مقابل 121) قد يُسبب الرفض.

2. استخدام جلسة بروكسي مختلفة

إذا استخدمت session-abc123 للحصول على cf_clearance ثم استخدمت session-xyz789 للطلبات اللاحقة، فستحصل على عنوان IP مختلف وسيُرفض الملف. استخدم نفس معرّف الجلسة دائماً طوال دورة حياة cf_clearance.

3. الاعتماد على تزييف بصمة TLS فقط

بعض المهندسين يحاولون تزييف JA4 باستخدام curl-impersonate أو مكتبات مخصصة. بينما قد ينجح هذا في تمرير فحص TLS، إلا أن JavaScript challenge سيكشف غياب بصمة المتصفح الحقيقية (Canvas، WebGL، AudioContext). الحل الأكثر موثوقية هو استخدام متصفح حقيقي مع Playwright أو Puppeteer.

4. تجاهل انتهاء صلاحية cf_clearance

تنتهي صلاحية cf_clearance عادةً خلال 30 دقيقة إلى 24 ساعة حسب إعدادات الموقع. يجب مراقبة حالة الاستجابة (HTTP 403 أو 503) وتجديد الملف عند الحاجة. بنِ منطق إعادة المحاولة في كودك:

# منطق تجديد cf_clearance
def fetch_with_retry(url, max_retries=3):
    for attempt in range(max_retries):
        response = requests.get(url, headers=headers, proxies=proxies)
        if response.status_code == 200:
            return response
        elif response.status_code in (403, 503):
            # إعادة الحصول على cf_clearance
            refresh_clearance()
            continue
    raise Exception('فشل بعد عدة محاولات')

5. التزامن المفرط

إرسال 100 طلب متزامن من نفس IP قد يُفعّل أنظمة كشف البوتات حتى مع cf_clearance صالح. استخدم معدل طلبات معقول (1-5 طلبات في الثانية) للبقاء تحت الرادار. وزّع الطلبات على عدة جلسات بروكسي إذا كنت بحاجة إلى إنتاجية أعلى.

6. إهمال Geo-targeting

إذا كان الموقع المستهدف يخدم محتوى مختلفاً حسب الدولة، قد يُسبب اختلاف موقع البروكسي عن موقع الطلب الأصلي تناقضاً إضافياً. استخدم user-country-US في اسم المستخدم لتحديد الموقع الجغرافي:

# بروكسي سكني في الولايات المتحدة مع جلسة لاصقة
curl -x http://user-country-US-session-abc123:pass@gate.proxyhat.com:8080 \
  'https://example.com/'

متى يكون هذا مناسباً: الاعتبارات الأخلاقية والقانونية

التقنيات المذكورة أعلاه مناسبة للحالات التالية:

  • البحث الأمني المرخص: اختبار اختراق مصرح به على أنظمة تملكها أو لديك إذن باختبارها
  • الوصول إلى البيانات العامة: جمع بيانات متاحة للعموم دون انتهاك شروط الخدمة
  • أتمتة العمليات المشروعة: مراقبة الأسعار، تتبع نتائج البحث (SERP)، جمع بيانات الأبحاث الأكاديمية
  • اختبار الأداء: محاكاة حركة مرور حقيقية لاختبار بنيتك التحتية

غير مناسبة لـ:

  • تخطي مصادقة غير مصرح بها أو الوصول إلى محتوى محمي خلف تسجيل دخول
  • انتحال هوية مستخدمين حقيقيين أو محاكاة جلسات مسروقة
  • الهجمات على بنية تحتية لا تملكها (DDoS، brute force)
  • انتهاك شروط خدمة الموقع بشكل صريح أو جمع بيانات شخصية دون أساس قانوني

في الولايات المتحدة، قد يُعتبر الوصول غير المصرح به إلى نظام محمي انتهاكاً لقانون CFAA (Computer Fraud and Abuse Act). في الاتحاد الأوروبي، قد تخضع معالجة البيانات الشخصية لقيود GDPR. استشر مستشاراً قانونياً إذا لم تكن متأكداً من قانونية استخدامك. للاطلاع على حالات استخدام مشروعة، راجع حالة استخدام استخراج البيانات وحالة استخدام تتبع نتائج البحث.

النقاط الرئيسية

الخلاصة: اجتياز Cloudflare Turnstile ليس مسألة تزييف ترويسة واحدة. النظام يعتمد على أربع إشارات متشابكة: JA4 وHTTP/2 SETTINGS وبصمة المتصفح وسمعة IP. أي تناقض بينها يُفعّل التحدي فوراً. الحل الوحيد الموثوق هو متصفح حقيقي + بروكسي سكني لاصق + إعادة استخدام نفس IP وUA.

  • داخلية كلاودفلير تيرنستايل تعمل عبر تحدٍ غير مرئي يجمع JavaScript وPoW وبصمة المتصفح — ليست مجرد CAPTCHA.
  • cloudflare bot management ja4 يكشف التناقض بين User-Agent وبصمة TLS فوراً — Python لا يستطيع التظاهر بأنه Chrome لأن مصافحة TLS تحدث قبل أي ترويسة HTTP.
  • cf_clearance cookie مرتبط بـ IP وUser-Agent — يتطلب بروكسي سكني ثابت طوال الجلسة.
  • cloudflare turnstile bypass يتطلب: متصفح حقيقي + بروكسي سكني لاصق + إعادة استخدام نفس IP وUA + معدل طلبات معقول.
  • استخدم ProxyHat مع session-abc123 لضمان ثبات IP طوال الجلسة، والمنفذ 8080 لـ HTTP و1080 لـ SOCKS5.
  • احترم حدود القانون: CFAA في الولايات المتحدة وGDPR في أوروبا. استشر مستشاراً قانونياً عند الشك.

¿Listo para empezar?

Accede a más de 50M de IPs residenciales en más de 148 países con filtrado impulsado por IA.

Ver preciosProxies residenciales
← Volver al Blog