مكتبة cfsolve المفتوحة بلغة Rust تحل تحدي Cloudflare Turnstile دون تشغيل أي متصفح
نُشر على GitHub مشروع مفتوح اسمه cfsolve، يصف نفسه بأنه مكتبة وأداة سطر أوامر مكتوبة بلغة Rust تحل widgets وصفحات التحدي الخاصة بـ Cloudflare Turnstile دون متصفح headless. وTurnstile هو بديل Cloudflare للـ captcha، يفحص المتصفح في الخلفية ليقرر إن كان أمامه إنسان.
والفرق هنا في الطريقة. فالأسلوب المعروف في الأتمتة هو تشغيل متصفح حقيقي يؤدي ما يطلبه التحدي، وهو أسلوب مكلف وبطيء ويمكن رصده. أما cfsolve فيتقمّص متصفحًا معيّنًا من خلال ملف يحوي ردودًا مسجّلة مسبقًا على الفحوصات التي يجريها التحدي، محفوظة بصيغة JSON.
ويصدر المشروع ومعه ملف جاهز واحد لـ Safari على iPhone، ويدعم نوعين فقط من ملفات المتصفح هما Safari وChrome. وإنشاء ملف جديد عمل يدوي: يُحل التحدي في متصفح حقيقي بينما تمر حركة البيانات عبر وسيط يسجّل الحمولة بعد فك تشفيرها. والنتيجة token يُسلَّم للـ widget، أو cookie باسم cf_clearance لصفحة التحدي.
وبهذا تنخفض كلفة اجتياز التحدي من تشغيل مزرعة متصفحات إلى ملف تنفيذي واحد. وهذا لا يجعل Turnstile بلا قيمة، لكنه يجعل نجاح التحدي دليلًا أضعف على وجود إنسان خلف الطلب.
ولمن يحمي صفحة تسجيل أو نموذجًا عامًا، ينتقل ما يفرّق بين البشر والبوتات إلى الخادم: عدّاد المحاولات، وربط النتيجة بحساب وجهاز، والأنماط التي تظهر حين تصل تسجيلات كثيرة من مصدر واحد في وقت واحد. وكانت Cloudflare قد أطلقت من قبل Turnstile Spin للتحقق من النتيجة في الخادم، والتحقق في الخادم هو أرخص خطوة متاحة في هذا الجانب.