الشروحات المعمقة

ملفات تعريف الارتباط في reCAPTCHA: ما الذي يُحفظ ولماذا يهمّ

عندما تظهر تحديات reCAPTCHA بصورتها الأصعب داخل سكربتات الأتمتة رغم أن كل شيء آخر يبدو سليماً، يكون المتهم الأول غالباً ملفات تعريف الارتباط لا عنوان IP. يقرأ reCAPTCHA ملفات تعريف الارتباط ويكتبها ليقدّر مدى «طبيعية» الجلسة: فالمتصفح الذي يحمل تاريخاً من ملفات تعريف الارتباط الخاصة بـ Google يمرّ غالباً بنقرة واحدة، بينما تُغرَق الجلسة النظيفة تماماً بجولات متتالية من تحديات الصور. تشرح هذه المقالة أي ملفات تعريف ارتباط يعتمد عليها reCAPTCHA، وكيف تُترجَم حالتها إلى صعوبة التحدي، وما الذي يجدر بك الحفاظ عليه لتحصل على نتائج حل أفضل.

كيف تحدّد ملفات تعريف الارتباط صعوبة التحدي

ملفات تعريف الارتباط ليست سوى إشارة واحدة ضمن إشارات كثيرة يجمعها محرك المخاطر في Google، لكنها إشارة ثقيلة الوزن: كلما بدا المتصفح أقرب إلى مستخدم بشري له تاريخ تصفّح، خفّت التحديات.

حالة ملفات تعريف الارتباط صعوبة التحدي السبب
تسجيل الدخول إلى حساب Google الأدنى إشارة هوية قوية
ملفات تعريف ارتباط Google موجودة دون تسجيل دخول منخفضة – متوسطة يظهر سجل تصفّح طبيعي
متصفح جديد بلا ملفات تعريف ارتباط لـ Google متوسطة – عالية لا يوجد تاريخ يُقيَّم به الخطر
ملفات تعريف الارتباط محظورة أو مُجرَّدة عالية مريب — المتصفحات العادية تحمل ملفات تعريف ارتباط
وضع التصفّح المتخفّي / الخاص عالية لا هوية ثابتة

أثر «درجة» ملفات تعريف الارتباط

يمنح محرك المخاطر في reCAPTCHA وزناً كبيراً لحالة ملفات تعريف الارتباط، ويمكن تلخيص السلوك في ثلاث حالات:

  1. أفضل حالة: يحمل المتصفح ملفات SID وHSID وNID من جلسة Google مسجَّل الدخول إليها → يمرّ غالباً بنقر مربع الاختيار فقط
  2. حالة جيدة: يحمل المتصفح NID و1P_JAR من تصفّح طبيعي → تحديات صور أسهل أو تمرير مربع الاختيار
  3. أسوأ حالة: لا ملفات تعريف ارتباط لـ Google وجلسة جديدة → تحديات صور متعددة الجولات

ملفات تعريف الارتباط التي يعتمد عليها reCAPTCHA

ملفات تعريف الارتباط الخاصة بنطاق Google

تُضبط على .google.com ويقرأها إطار reCAPTCHA:

ملف تعريف الارتباط النطاق الغرض مدة الصلاحية
NID .google.com تفضيلات Google ومعرّف فريد 6 أشهر
SID / HSID / SSID .google.com جلسة حساب Google عند تسجيل الدخول سنتان
APISID / SAPISID .google.com مصادقة واجهات Google سنتان
1P_JAR .google.com تخصيص إعلانات Google شهر واحد
CONSENT .google.com تفضيل الموافقة على ملفات تعريف الارتباط 17 سنة

ملفات تعريف الارتباط الخاصة بـ reCAPTCHA

ملف تعريف الارتباط النطاق الغرض مدة الصلاحية
_GRECAPTCHA .google.com / .recaptcha.net تتبّع جلسة reCAPTCHA جلسة
rc::a localStorage بيانات تحليل المخاطر مستمر
rc::b localStorage بيانات الطابع الزمني جلسة
rc::c localStorage بيانات خاصة بالتحدي جلسة
rc::d-<id> localStorage بيانات لكل عنصر واجهة جلسة

ملفات تعريف الارتباط الخاصة بالموقع المستهدف

الموقع الذي يستضيف اختبار reCAPTCHA قد يعتمد بدوره على ملفات تعريف ارتباط للجلسة وحماية CSRF:

النوع مثال الصلة
معرّف الجلسة PHPSESSID، session_id يربط حلّ CAPTCHA بجلسة المستخدم
رمز CSRF csrf_token، _token مطلوب لإرسال النموذج
تتبّع مخصص خاص بالموقع قد يؤثر في تشغيل اختبار CAPTCHA

قيود ملفات تعريف الارتباط عبر المجالات

يُحمَّل reCAPTCHA داخل إطار من google.com، وتفرض المتصفحات الحديثة سياسات صارمة على ملفات تعريف الارتباط عبر المجالات:

سياسة المتصفح الأثر على reCAPTCHA
SameSite=Lax — الافتراضي لا تُرسَل ملفات تعريف ارتباط Google داخل إطار reCAPTCHA افتراضياً
حظر ملفات تعريف الارتباط للطرف الثالث يتراجع reCAPTCHA إلى recaptcha.net أو وضع الطرف الأول
ITP في Safari تنتهي صلاحية ملفات تعريف ارتباط Google أسرع، فتتكرّر التحديات الأصعب

سيناريو Safari وITP في أسواق الخليج ومصر

يستحق بند Safari انتباهاً خاصاً في أسواق الخليج ومصر حيث حصة iPhone مرتفعة: تجريدُ ITP لملفات تعريف الارتباط بعد أيام قليلة يعني أن المستخدمين — وأجهزة الاختبار التي تحاكيهم — يصطدمون بتحديات أصعب أكثر مما يحدث على Chrome.

نصيحة: عند اختبار تدفّق تسجيل دخول من Safari، لا تبدأ من ملف تعريف نظيف في كل تشغيل؛ فتجريد ITP للحالة سيُظهر لك تحديات أثقل مما يراه مستخدموك الفعليون. حافظ على ملف تعريف ثابت واحد بدل ذلك.

كيف تعالج Google هذه القيود

  • استخدام recaptcha.net نطاقاً بديلاً عندما يُحظر google.com
  • الاعتماد على localStorage عبر إدخالات rc::* للحالة من جانب العميل
  • إتاحة تحميل السكربت من الطرف الأول لعملاء المؤسسات

التعامل مع ملفات تعريف الارتباط في الأتمتة

مع أتمتة المتصفح — Playwright / Puppeteer

تدير أتمتة المتصفح ملفات تعريف الارتباط تلقائياً. وللحفاظ عليها بين الجلسات، احفظها واسترجعها:

# Save cookies after session
cookies = page.context.cookies()
import json
with open("cookies.json", "w") as f:
    json.dump(cookies, f)

# Restore cookies in next session
with open("cookies.json") as f:
    cookies = json.load(f)
page.context.add_cookies(cookies)

مع CaptchaAI — الحل عبر الـ API فقط

عند استخدام CaptchaAI دون متصفح، لا تؤثر ملفات تعريف الارتباط مباشرة في الحل، لأن CaptchaAI يدير بيئة الحل الخاصة به. لكن قد ترغب في تمرير ملفات تعريف الارتباط إذا كان الموقع المستهدف يحتاجها لاستمرارية الجلسة:

POST https://ocr.captchaai.com/in.php

key=YOUR_API_KEY
&method=userrecaptcha
&googlekey=SITE_KEY
&pageurl=https://example.com/login
&cookies=NID=12345;1P_JAR=2026-04-04-12

المعلمة cookies اختيارية، وتُمرّر سياق ملف تعريف الارتباط إلى CaptchaAI أثناء الحل.

إدخالات التخزين المحلي (localStorage)

يخزّن reCAPTCHA بيانات تقييم المخاطر في localStorage ضمن مفاتيح تبدأ بالبادئة rc:::

نمط المفتاح البيانات
rc::a حمولة تحليل المخاطر المشفّرة
rc::b الطابع الزمني لآخر تحدٍّ
rc::c بيانات جلسة التحدي الحالية
rc::d-<hash> بيانات مثيل لكل عنصر واجهة

تساعد هذه الإدخالات reCAPTCHA على حفظ حالته عبر عمليات تحميل الصفحة دون الاعتماد على ملفات تعريف ارتباط الطرف الثالث. في الأتمتة، يقلّل الحفاظ على localStorage صعوبة التحدي:

# Save localStorage
storage = page.evaluate("() => JSON.stringify(localStorage)")
with open("localstorage.json", "w") as f:
    f.write(storage)

# Restore localStorage
with open("localstorage.json") as f:
    storage = f.read()
page.evaluate(f"Object.entries(JSON.parse('{storage}')).forEach(([k,v]) => localStorage.setItem(k,v))")

أفضل الممارسات

  • أبقِ ملفات تعريف المتصفح بين عمليات التشغيل — يبني سجل تصفّح يخفّف التحديات
  • لا تمسح ملفات تعريف الارتباط بين المهام — يحافظ على استمرارية تقييم المخاطر لدى Google
  • استخدم recaptcha.net عند حظر google.com — الخدمة نفسها بنطاق مختلف
  • حافظ على إدخالات rc:: في localStorage — يبقي حالة جلسة reCAPTCHA
  • زُر خدمات Google من حين لآخر — يجدّد صلاحية ملفات تعريف الارتباط

استكشاف الأخطاء وإصلاحها

المشكلة السبب الإجراء
تحديات صور صعبة في كل مرة لا ملفات تعريف ارتباط / ملف تعريف جديد ابنِ ملف تعريف متصفح يحمل ملفات تعريف ارتباط Google
ظهور خطأ «ملفات تعريف الارتباط مطلوبة» حظر ملفات تعريف ارتباط الطرف الثالث فعّل ملفات تعريف الارتباط لـ google.com أو استخدم recaptcha.net
رمز صالح لكن الجلسة غير متطابقة ملف تعريف الموقع مثل PHPSESSID غير محفوظ احفظ كل ملفات تعريف الارتباط واسترجعها لا ملفات Google وحدها
حلقة تحديات لا تنتهي من طلب الصور مسح localStorage بين المحاولات حافظ على إدخالات rc::* في localStorage

الأسئلة الشائعة

لماذا أحصل على تحديات صور صعبة في كل تشغيل رغم أن الحل ينجح؟

الغالب أن جلستك «نظيفة» بلا ملفات تعريف ارتباط لـ Google، فيقرأها محرك المخاطر على أنها مشبوهة ويرفع الصعوبة. بدل بدء جلسة جديدة كل مرة، حافظ على ملف تعريف متصفح ثابت يتراكم فيه:

  • ملفات تعريف ارتباط Google مثل NID و1P_JAR
  • إدخالات rc:: في localStorage

هل يؤثر حظر ملفات تعريف ارتباط الطرف الثالث في متصفحي على reCAPTCHA؟

نعم. مع سياسة SameSite=Lax وحظر الطرف الثالث لا تصل ملفات تعريف ارتباط Google إلى الإطار افتراضياً، فيتراجع reCAPTCHA إلى recaptcha.net أو إلى وضع الطرف الأول ويعتمد أكثر على localStorage.

هل يحتاج CaptchaAI إلى ملفات تعريف الارتباط في متصفحي لحل reCAPTCHA؟

لا. يحل CaptchaAI reCAPTCHA v2 عبر بنيته الخاصة، وتمرير المعلمة cookies اختياري يُستخدم فقط لسياق إضافي عندما يطلبه الموقع المستهدف.

متى أستخدم recaptcha.net بدلاً من google.com؟

استخدم recaptcha.net عندما يكون google.com محظوراً على مستوى الشبكة، أو عند حظر ملفات تعريف الارتباط للطرف الثالث. النطاقان يقدّمان الخدمة نفسها، والتبديل بينهما لا يغيّر آلية الحل.


الخطوات التالية

أدلة ذات صلة

التعليقات غير مفعّلة لهذا المقال.