انتقل من reCAPTCHA
يستخدم Caputchin النموذج ذا الجزأين نفسه كـ reCAPTCHA، أداة على الصفحة تنتج رمزًا، وفحص على الخادم يؤكّده، فالانتقال أساسًا استبدال آليّ، لا إعادة كتابة. تبادل الخادم خصوصًا يعكس شكل siteverify الخاص بـ reCAPTCHA عمدًا. يعطي هذا الدليل القبل-والبعد لكل قطعة.
إن لم تكن قد أنشأت حساب Caputchin ومفتاح موقع بعد، فـأنشئ حسابك أولًا؛ ستحتاج مفتاحًا عامًّا (cpt_pub_...) للصفحة وسرًّا (cpt_sec_...) لخادمك الخلفي، التقسيم نفسه كمفتاح موقع reCAPTCHA ومفتاحه السرّي.
النموذج الذهني دون تغيير
كل ما بنيته أصلًا حول reCAPTCHA، اعرض أداة، واجمع رمزًا، وأرسِله POST إلى خادمك، وتحقّق منه قبل أن تثق بالطلب، يبقى. الأسماء ونقاط الوصول وحدها تتغيّر.
1. استبدل مقتطف العميل
| reCAPTCHA (v2 خانة اختيار) | Caputchin | |
|---|---|---|
| السكربت | <script src="https://www.google.com/recaptcha/api.js" async defer> | <script src="https://cdn.jsdelivr.net/npm/@caputchin/widget@3/dist/widget.js"> |
| العنصر | <div class="g-recaptcha" data-sitekey="..."> | <caputchin-widget sitekey="cpt_pub_..."> |
| حقل الرمز في نموذج | g-recaptcha-response (محقون تلقائيًّا) | caputchin-token (محقون تلقائيًّا) |
| قراءة الرمز في JS | grecaptcha.getResponse() | حدث pass detail.token |
كـ reCAPTCHA، تحقن أداة Caputchin حقل رمز مخفيًّا تلقائيًّا في النموذج الذي تجلس فيه، فإن كان نموذجك يرسل POST عاديًّا أصلًا، فلا تغيّر سوى العنصر واسم الحقل الذي يقرؤه خادمك الخلفي. انظر أضف الأداة لإعداد العميل الكامل وخيار CDN مقابل npm.
2. استبدل تحقّق الخادم
هنا الأقرب بينهما، شكلا الطلب والاستجابة يصطفّان حقلًا بحقل تقريبًا.
| reCAPTCHA | Caputchin | |
|---|---|---|
| نقطة الوصول | POST https://www.google.com/recaptcha/api/siteverify | POST https://caputchin.com/api/v1/siteverify |
| حقول الطلب | secret، وresponse | secret، وresponse (متطابق) |
| الاستجابة | { success, challenge_ts, hostname, "error-codes" } | { success, challenge_ts, hostname, error-codes, score? } |
| قاعدة الثقة | تصرّف فقط إن success === true | تصرّف فقط إن success === true (متطابق) |
في معظم المنظومات التغيير الوحيد لكود تحقّقك هو الرابط وقيمة السرّ. مرجع الطلب/الاستجابة الكامل، بما فيه رموز الأخطاء، على تحقّق من رمز على خادمك الخلفي؛ ومقتطفات أطر العمل في أمثلة الخادم الخلفي.
3. اربط النتيجة، إن استخدمت reCAPTCHA v3
يعيد reCAPTCHA v3 نتيجة score (من 0.0 إلى 1.0) ويطلب منك اختيار عتبة، فأنت تخمّن كم بدا طلب بشريًّا. Caputchin لا يعمل هكذا: success نجاح/فشل موثوق، لأن التحقّق اجتيز فعلًا (فحص proof-of-work، أو جولة لعبة معاد اشتقاقها على الخادم)، لا احتمالًا.
إن كان كودك if (data.score >= 0.5)، فاستبدله بـ if (data.success). حقل score في Caputchin موجود فقط لجولات الألعاب وهو نتيجة اللعبة (للعلم، للوحات نتائجك الخاصة)، لا احتمال-روبوت أبدًا، فلا تحكّم الوصول به.
ما الذي يتحسّن في النقلة
- لا جمع بيانات زائر. reCAPTCHA ينمّط زوّارك؛ وCaputchin لا يجمع IP، ولا User-Agent، ولا بصمة، ولا قياسًا سلوكيًّا، فالبروتوكول لا مكان فيه لمعرّف زائر. انظر الفلسفة.
- أداة واحدة، لا v2-مقابل-v3. لا منتج غير-مرئي/نتيجة منفصل لتختار بينهما؛ عنصر واحد يغطّي خانة الاختيار واللعبة الاختيارية.
- لعبة اختيارية. بدل شبكة إشارات مرور، تستطيع تحويل التحقّق إلى لعبة قصيرة يلعبها زوّارك فعلًا. انظر أضف لعبة.
- CSP صارم يبقى صارمًا. يعمل Caputchin تحت Content-Security-Policy ضيّقة؛ تسمح ببضعة أصول بدل تخفيف سياستك. انظر كيف يعزل Caputchin الألعاب.
مزالق
- مفتاحان، بيتان. المفتاح العام (
cpt_pub_...) يذهب على الصفحة؛ والسرّ (cpt_sec_...) يبقى على الخادم فقط، انضباط reCAPTCHA نفسه بالضبط. لا تشحن السرّ إلى المتصفّح. - الرمز للاستخدام مرة واحدة. كـ reCAPTCHA، يتحقّق الرمز مرة. لا تخبّئه ولا تعد تشغيله.
- غيّر اسم الحقل الذي يقرؤه خادمك الخلفي. الحقل المخفي
caputchin-token، لاg-recaptcha-response، فوات شائع بسطر واحد.
انظر أيضًا
- أضف الأداة: إعداد العميل الكامل.
- تحقّق من رمز على خادمك الخلفي: مرجع
siteverifyالموثوق. - أمثلة الخادم الخلفي: نداء التحقّق بكل لغة.
- أضف لعبة: حوّل التحقّق إلى لعبة.