الخصوصية وتقليل البيانات بالتشفير
يعمل Analytics House بالكامل (100%) على Cloudflare Workers وCloudflare D1. وقد صُمِّم بحيث تُنقّى البيانات الشخصية في الذاكرة على الحافة قبل التخزين، وتُتلَف قيم الملح اليومية تشفيريًا بمجرد إقفال الجداول التجميعية.
ما لا يُخزَّن أبدًا
- لا ملفات تعريف ارتباط، ولا يُكتب أي شيء في مساحة تخزين المتصفح لدى زوارك. تُجمَّع الزيارات على الخادم.
- لا يُكتب عنوان IP الخاص بالعميل ولا سلسلة
User-Agentالخام على القرص أو في السجلات أبدًا. - لا تُخزَّن سلاسل الاستعلام ولا الأجزاء (fragments) من عناوين URL (المسارات فقط)، ولا يُحفظ من المُحيل إلا اسم المضيف.
- تُسقَط افتراضيًا الطلبات التي تحمل
Sec-GPC: 1(Global Privacy Control) أوDNT: 1(Do Not Track) مع الاستجابة204 No Content.
الموافقة وأشرطة ملفات تعريف الارتباط
لا يعيّن سكربت التتبع أي ملفات تعريف ارتباط ولا يكتب أبدًا في مساحة تخزين المتصفح لدى الزائر، إذ تُجمَّع الزيارات على خوادمنا بدلًا من ذلك. والشيء الوحيد الذي يقرؤه هو علامة انسحاب (ea_ignore في localStorage) يعيّنها الزائر بنفسه للاعتراض. وتشمل قواعد الموافقة أي تخزين على الجهاز أو وصول إليه، لا ملفات تعريف الارتباط فقط:
- المملكة المتحدة. منذ 5 فبراير 2026، تسمح لوائح الخصوصية والاتصالات الإلكترونية، بصيغتها المعدّلة بموجب قانون البيانات (الاستخدام والوصول) لعام 2025، بتخزين المعلومات على الجهاز أو قراءتها منه دون موافقة عندما يكون الغرض الوحيد هو جمع إحصاءات حول طريقة استخدام موقعك الإلكتروني بهدف تحسينه، ولا تُشارَك المعلومات لأغراض أخرى، ويُبلَّغ الزوار بذلك بوضوح ويُمنَحون وسيلة بسيطة ومجانية للاعتراض. لا يستخدم Analytics House بياناتك لأي غرض آخر. وللاعتماد على هذا الاستثناء، اذكر Analytics House في إشعار الخصوصية لديك ووفّر خيار الانسحاب الموضّح أدناه.
- الاتحاد الأوروبي. لا تتضمن قواعد الخصوصية الإلكترونية (ePrivacy) استثناءً مماثلًا للتحليلات. ولأن سكربت التتبع لا يخزّن شيئًا، فإن المسألة الرئيسية هي التحقق من علامة الانسحاب؛ راجع مستشارك لمعرفة ما إذا كان إعدادك يتطلب الحصول على موافقة.
- في كل مكان. ما زلت بحاجة إلى أساس قانوني بموجب اللائحة العامة لحماية البيانات (GDPR)، وهو عادةً المصالح المشروعة، وإلى إشعار خصوصية يذكر Analytics House. ويغطي ملحق معالجة البيانات الخاص بنا شروط العلاقة بين المتحكّم في البيانات ومعالجها.
توفير خيار الانسحاب. لا تُتتبَّع أبدًا المتصفحات التي ترسل إشارة Global Privacy Control أو Do Not Track. ويمكنك أيضًا إضافة رابط انسحاب إلى إشعار الخصوصية لديك؛ إذ يعيّن علامة في متصفح الزائر يتحقق منها سكربت التتبع قبل إرسال أي شيء:
<a href="#" onclick="localStorage.setItem('ea_ignore','1');this.textContent='You are opted out';return false">
Opt out of website statistics
</a>هذا القسم معلومات عامة لمساعدتك على اتخاذ القرار، وليس استشارة قانونية.
الملح اليومي المؤقت والإتلاف التشفيري
- يُولَّد لكل يوم UTC ملح عشوائي جديد بطول 256 بت عبر
crypto.getRandomValues()، ويُخزَّن في D1 تحت المفتاحsalt:YYYY-MM-DD. - معرّفات الزوار والجلسات ملخّصات أحادية الاتجاه من نوع
SHA-256(daily_salt | day | project_id | ip | ua)مقتطعة إلى 64 بت. والملح السري هو المفتاح: فمن دونه لا يمكن إعادة حساب التجزئة انطلاقًا من عنوان IP. - عندما يُقفل مُشغِّل Cron الذي يعمل كل 15 دقيقة يومَ UTC مكتملًا في
rollup_dayوrollup_dim، تحذف الدالةshredExpiredSalts()ملح ذلك اليوم من D1 نهائيًا. ومن دون هذا الملح، يتعذّر عمليًا ربط معرّفات الزوار السابقة بعناوين IP أو ربطها ببعضها عبر الأيام.
أداة تنقية البيانات الشخصية التلقائية على الحافة
- تُحجب تلقائيًا قبل التخزين مقاطع مسار URL التي تحتوي على عناوين بريد إلكتروني (
[email])، أو معرّفات UUID ([uuid])، أو رموز JWT ([jwt])، أو عناوين IPv4 ([ip])، أو رموز سرية عالية العشوائية ([token]). - تُنقّى خصائص الأحداث المخصّصة: إذ تُستبدل بالقيمة
[REDACTED]المفاتيحُ الحساسة (email، وpassword، وtoken، وsecret، وssn، وphone، وapi_key، وغيرها) والقيمُ المضمّنة التي تحتوي على بيانات شخصية (بما في ذلك أرقام بطاقات الائتمان التي تجتاز التحقق بخوارزمية Luhn). - تُجزَّأ بالملح اليومي قيم
user_idالتي تشبه عناوين البريد الإلكتروني أو معرّفات UUID (أو جميع قيمuser_idعند تفعيلstrict_privacy).
وضع انعدام السجل الخام وإخفاء الهوية من النوع k
- وضع انعدام السجل الخام (
ephemeral_raw): يحذف الصفوف الخام فيeventsالخاصة بيوم UTC فور إقفال الجداول التجميعية لذلك اليوم. - إخفاء الهوية من النوع k (
k_anonymity): يحجب أي صف في تفصيل المناطق أو المدن يقل عدد الزوار الفريدين فيه عنk(قابل للضبط من2إلى100). - وكيل Worker من الطرف الأول بلا عناوين IP: يوفّر كل مشروع في إعدادات المشروع سكربت Cloudflare Worker جاهزًا للنشر يزيل عناوين IP الخاصة بالزوار على حافة نطاقك ويمرّر ملخّصًا مُبهَمًا
X-EA-Visitor-Relay.
بيان تدقيق الخصوصية المباشر
استعلم عن GET /projects/:id/privacy (أو GET /public/:token/privacy للوحات التحكم المُشارَكة) لفحص حالة الملح الحالي، وتجزئات Subresource Integrity (sha384)، وضمانات الخصوصية المفعّلة في المشروع في الوقت الفعلي.