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

مفتاح موقع reCAPTCHA Enterprise مقابل مفتاح API: دليل التكوين

المفتاح الذي ترسله إلى CaptchaAI هو مفتاح الموقع: السلسلة التي تبدأ بـ 6L وتظهر مكشوفة في مصدر الصفحة. أما التي تبدأ بـ AIzaSy فهي مفتاح Google Cloud الخاص بالموقع المستهدف، ولا دخل لها بالحل.

هذا الخلط هو أكثر ما يتكرر في تذاكر الدعم حول reCAPTCHA Enterprise: يُنسخ أول مفتاح تقع عليه العين داخل Google Cloud Console، فتعود المهمة مرفوضة. والقاعدة المختصرة: ما يظهر في المتصفح هو ما يلزم للحل.

الفرق بين المفتاحين في جدول واحد

الخاصية مفتاح الموقع — sitekey مفتاح الـ API
الشكل 6L... — 40 حرفاً AIzaSy... — 39 حرفاً
الظهور علني في HTML خاص بالخادم
الوظيفة عرض أداة CAPTCHA التحقق من الرمز لدى Google
يطلبه CaptchaAI؟ نعم لا

مفتاح موقع reCAPTCHA Enterprise: الجزء العلني

مفتاح الموقع مكتوب داخل الصفحة نفسها، ووظيفته تحديد تكوين reCAPTCHA المطلوب تحميله:

<script src="https://www.google.com/recaptcha/enterprise.js?render=6LcR_RsTAAAAADge..."></script>

أو داخل نداء grecaptcha.enterprise.execute:

grecaptcha.enterprise.execute('6LcR_RsTAAAAADge...', { action: 'login' });
العلامة ماذا تعني
يبدأ بـ 6L البادئة نفسها في reCAPTCHA القياسي
ظاهر في المصدر علني بالتصميم، لا سرّ مسرَّب
مقيَّد بنطاق يُضبط في Google Cloud Console
كافٍ للحل لا يطلب CaptchaAI غيره

مفتاح الـ API: الجزء الذي لا يغادر الخادم

مفتاح الـ API يصادق الاتصال بين خادم الموقع وGoogle عند التحقق من الرمز:

POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/assessments?key=AIzaSy...

يبدأ هذا المفتاح بالتنسيق AIzaSy، ولا يظهر إطلاقاً في كود جانب العميل، وتستعمله الواجهة الخلفية وحدها. لهذا لا يطلبه CaptchaAI؛ فهو ملك لمشروع Google Cloud الخاص بصاحب الموقع.

إذا طالبك أي دليل بإرسال مفتاح AIzaSy لتشغيل الحل، فالتعليمات خاطئة: الحل لا يمر بحساب Google Cloud.

أين يقع كل مفتاح داخل دورة التحقق

  1. المتصفح يحمّل enterprise.js بـ مفتاح الموقع
  2. المتصفح ينفّذ التحدي ويحصل على g-recaptcha-response
  3. خادم الموقع يرسل الرمز مع مفتاح الـ API إلى assessments
  4. Google تُرجع درجة المخاطر وأسباب التقييم
  5. خادم الموقع يقبل الطلب أو يرفضه بناءً على الدرجة

دور CaptchaAI محصور في الخطوتين الأولى والثانية؛ أما الباقي فيجري داخل بنية الموقع بمفتاحه الخاص.


ما الذي يتغير عند الانتقال من الإصدار القياسي إلى Enterprise

العنصر الإصدار القياسي Enterprise
مصدر المفتاح لوحة تحكم مشرف reCAPTCHA Google Cloud Console
نقطة التحقق siteverify assessments
المصادقة المفتاح السري المشترك مفتاح API أو حساب خدمة
شكل النتيجة حقل score riskAnalysis.score مع الأسباب
اسم المهمة RecaptchaV2Task / RecaptchaV3Task RecaptchaV2EnterpriseTask / RecaptchaV3EnterpriseTask

ثلاث طرق لاستخراج مفتاح موقع reCAPTCHA Enterprise

1. البحث في مصدر الصفحة

ابحث في مصدر الصفحة عن enterprise.js؛ المفتاح مخبوء داخل المعلمة render:

View Source → Ctrl+F → "enterprise.js"
<script src="https://www.google.com/recaptcha/enterprise.js?render=6LcR_RsTAAAAADge..."></script>

2. من وحدة تحكم JavaScript

إن كانت الأداة تُحمَّل ديناميكياً، شغّل هذا المقطع في وحدة تحكم المتصفح:

// Check for Enterprise grecaptcha
if (window.grecaptcha && window.grecaptcha.enterprise) {
  console.log('reCAPTCHA Enterprise detected');
}

// Find site key from rendered widgets
document.querySelectorAll('[data-sitekey]').forEach(el => {
  console.log('Site key:', el.getAttribute('data-sitekey'));
});

3. من تبويب الشبكة

رشّح طلبات الشبكة على enterprise.js، وسيظهر المفتاح في عنوان URL للطلب. وهي الأنسب مع المواقع التي تبني صفحاتها من JavaScript.

إرسال المهمة إلى نقطة النهاية in.php

POST https://ocr.captchaai.com/in.php
المعلمة القيمة إلزامية؟
key مفتاح حسابك — YOUR_API_KEY نعم
method userrecaptcha نعم
googlekey مفتاح الموقع — 6LcR_Rs... نعم
pageurl عنوان URL الكامل للصفحة نعم
enterprise 1 لتمييز التحدي كـ Enterprise نعم
enterprise_type v2 أو v3 بحسب التكامل اختيارية
action اسم الإجراء في v3 — مثل login اختيارية

سيناريو عملي: اختبار صفحة تسجيل دخول في الرياض

فريق ضمان الجودة في منصة حجوزات سعودية يشغّل اختباراً ليلياً على صفحة تسجيل الدخول لديه، وهي محمية بـ reCAPTCHA Enterprise v3. في أول تشغيل نسخ المهندس المفتاح من شاشة Credentials — أي الذي يبدأ بـ AIzaSy — فعاد الطلب مرفوضاً. المسار الصحيح ثلاث خطوات:

  • استخراج مفتاح الموقع من enterprise.js، مع مفتاح منفصل للإنتاج
  • إرسال المهمة بـ enterprise=1 وenterprise_type=v3 وaction=login
  • وضع الرمز العائد في g-recaptcha-response قبل إرسال النموذج

خطط CaptchaAI تُحتسب بعدد الـ threads المتزامنة لا بعدد عمليات الحل: خطة BASIC بسعر $15 شهرياً — 5 threads بحلول غير محدودة داخل كل thread — تكفي دورة اختبار كهذه، بينما تحتاج فرق جمع البيانات إلى ADVANCE بسعر $90 شهرياً مع 50 thread.

أخطاء التكوين الشائعة وعلاجها

العَرَض السبب المرجّح العلاج
رفض المهمة فور إرسالها إرسال مفتاح AIzaSy... استخرج المفتاح الذي يبدأ بـ 6L
الرمز يُنتَج والموقع يرفضه الخلط بين v2 وv3 اضبط القيمة الصحيحة في enterprise_type
مفتاح الموقع غير صالح المفتاح من بيئة الاختبار لا الإنتاج انسخه من عنوان URL المستهدف حرفياً
التحدي يُعالَج كأنه قياسي نسيان راية Enterprise أضف enterprise=1 إلى الطلب

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

مفتاح الموقع ظاهر لأي زائر — أليست هذه ثغرة أمنية؟

الظهور مقصود بالتصميم. المفتاح مقيَّد بالنطاقات المصرّح بها، والحماية الفعلية تقع في تقييم الطلب على الخادم لا في إخفاء سلسلة نصية.

متى أضبط enterprise_type ومتى أحتاج action؟

اضبط enterprise_type كلما اختلف إصدار التحدي عمّا يفترضه تكاملك، وaction مطلوبة عملياً في v3 لأن الموقع يقارن اسم الإجراء بما ينتظره في الصفحة.

هل يختلف شكل الرمز عن رمز reCAPTCHA القياسي؟

لا. الرمز يصل في الحقل نفسه g-recaptcha-response وتضعه في النموذج كالمعتاد؛ الاختلاف كله في مسار التحقق على الخادم.

كيف أميّز موقعاً يعمل بـ Enterprise عن آخر قياسي؟

انظر إلى عنوان السكربت: Enterprise يُحمَّل من /recaptcha/enterprise.js والقياسي من /recaptcha/api.js، وفي الكود ستجد grecaptcha.enterprise.execute() بدلاً من grecaptcha.execute().


ماذا تقرأ بعد هذا الدليل

أدلة قريبة من الموضوع

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