لماذا بنينا قاعدة بيانات لملفات تعريف الارتباط (الكوكيز) خاصة بمنطقتنا
ملاحظات ميدانية من الفريق
ما الذي دفعنا إلى ذلك
في أولى الفحوصات الحيّة التي أجريناها لأنفسنا، عاد نحو ملف تعريف ارتباط من كل خمسة مصنّفًا unknown. تتبّعنا السبب: المصنّفات في ماسحنا (المقتبسة من قوائم مفتوحة المصدر) مبنية في معظمها لمواقع أوروبا وأمريكا. تعرف Meta و Google و Adobe و Optimizely و Segment، لكنّها لا تعرف Tabby، ولا Tamara، ولا salla_* ولا _zid_* ولا stcpay_*.
والأمر أهمّ مما يبدو. ملف تعريف ارتباط unknown في البيان يقرؤه التاجر هكذا: "هذه الأداة لا تعرف الموقع الذي أديره". فتنهار ثقته في الماسح، ويقلّ نفع البيان للزائر، وينتهي الأمر بالتاجر يصنّف بيده 10 إلى 20 ملف تعريف ارتباط في اليوم الأول. إزعاج صغير من النوع الذي يحوّل تثبيتًا يستغرق 5 دقائق إلى عمل يستهلك فترة ما بعد الظهر كلّها.
ما الذي فعلناه
أضفنا إلى مصنّفنا 32 نمطًا لملفات تعريف ارتباط خاصة بالمنطقة، تغطّي:
- منصّات التجارة الإلكترونية (سلة، زد، Bonat)
- خدمات "اشترِ الآن وادفع لاحقًا" (Tabby، Tamara، Postpay)
- بوّابات الدفع الخليجية (PayTabs، HyperPay، Telr، Geidea، Moyasar، URWAY، EdfaPay، Foloosi)
- Mada و STC Pay (شبكة المدفوعات السعودية والمحفظة الرقمية)
- شركات الشحن في المنطقة (Aramex، SMSA، Naqel، Bosta، Mylerz، iMile)
- شبكات الإعلان الإقليمية (ArabClicks، Lana Ads، Tap Network)
- قطاف (برنامج الولاء من STC)
لكل مُدخل فئة (ضروري / تحليلات / تسويق / تفضيلات)، ووصف واضح بالإنجليزية، ووصف بالعربية، ونمط regex ضبطناه على طريقة تسمية ملفات تعريف الارتباط كما نراها فعلًا في المواقع. صنّفنا بوّابات الدفع ضرورية (فهي تحفظ حالة الجلسة حين يعود المشتري من صفحة الدفع)، وشركات الشحن ضرورية (حالة أداة تتبّع الشحنة)، وخدمات الدفع لاحقًا تسويقية (أدوات تتبّع للإسناد).
أين أخطأنا في المرّة الأولى
كانت الأنماط الأولى كلّها قائمة على البادئة وحدها: ^tap_، ^mada_، ^_ac_، ^amwal_. بدت نظيفة، لكنّها كانت كارثية حين تعمل منفردة. فالنمط ^tap_ يطابق أيّ ملف تعريف ارتباط يبدأ بـ"tap_"، بما في ذلك مكتبات الإيماءات ومكتبات الصوت وكلّ ما لا علاقة له بالدفع. و^mada_ و^amwal_ أسوأ: "mada" و"amwal" كلمتان عربيتان شائعتان ("مدى" و"أموال")، فأيّ تطبيق ذي طابع عربي يستخدمهما بادئةً لملفات تعريف الارتباط يُصنَّف خطأً على أنّه جلسة دفع.
شدّدنا الأنماط الستة كلّها لتشترط بادئة المزوّد ومعها كلمة لاحقة معروفة، مثل ^mada_(session|token|gw|pay|tx|3ds)/i. وثبّتنا التغيير بـ19 اختبار وحدة جديدًا: نصفها يؤكّد المطابقة (ملفات تعريف الارتباط المشروعة ما زالت تُطابَق)، ونصفها يؤكّد عدم المطابقة (ملفات لا علاقة لها كانت تُلتقط خطأً، ولم تعد كذلك). فإن حاول أحد توسيعها من جديد، يتعطّل CI قبل أن يصل التغيير إلى الإنتاج.
لماذا يصعب على غيرنا اللحاق بهذا
تضمّ القاعدة الآن 124 نمطًا، منها 37 بُنيت لمنطقتنا (كانت 81 قبل هذا العمل، و113 حين نُشرت هذه الملاحظة أوّل مرّة). يستطيع Cookiebot و OneTrust و Termly و Iubenda إضافة ذلك غدًا، لكنّهم لن يفعلوا. فسوق SaaS في منطقتنا أصغر من أن يجعلوها أولوية، وحتى لو فعلوا، تحتاج الأنماط إلى متابعة مستمرة كلّما غيّر المزوّدون الإقليميون أسماء ملفاتهم. هذه المتابعة صارت عندنا عملًا دائمًا لا مشروعًا لمرّة واحدة: كلّ فحص يجريه تاجر يكشف ملفات تعريف ارتباط مجهولة نستطيع استخراجها ومراجعتها وإضافة أنماط لها. والفجوة تضيق باستمرار.
والنتيجة التي تهمّ التاجر: بيان ملفات تعريف الارتباط الذي يُنشر مع التثبيت يعرف فعلًا الأدوات التي يعمل بها متجره. كلّ ملف إقليمي لدينا نمط له لا يظهر "غير معروف"، ولا تخمين. أوصاف بلغتين، وفئات صحيحة، من اليوم الأول.
الخطوة التالية
كانت الأنماط الـ32 الأولى الخاصة بالمنطقة هي النواة، وكلّها عالية الثقة، وصار عددها اليوم 37. ومع نموّ عدد الفحوصات الفعلية لمتاجر التجار، نستخرج كل أسبوع قائمة بملفات تعريف الارتباط التي عادت unknown، مرتّبة حسب تكرارها، ونحوّل أكثر الأسماء المجهولة شيوعًا إلى أنماط محدّدة. إن شغّلت الماسح على متجر فيه ملف تعريف ارتباط لا نصنّفه، فهكذا يصل إلى قائمة عملنا.
ما الذي سيكشفه الفحص في موقعك؟
فحص مجاني دون تسجيل، والنتائج خلال 60 ثانية تقريبًا.