رأس Sec-GPC أصبح في كل مكان: الكشف من جانب الخادم للتحليلات
يُرسل Global Privacy Control كرأس طلب Sec-GPC مع كل طلب. إليك كيفية قراءته على الحافة واحترامه في مسار تحليلات بلا كوكيز.
غالبًا ما يُناقش Global Privacy Control (GPC) كإشارة قانونية، لكنه بالنسبة للمهندسين رأس HTTP قبل كل شيء. كل طلب صادر من متصفح أو إضافة مُفعّل فيها GPC يحمل Sec-GPC: 1، ويُتاح التفضيل نفسه لجافاسكريبت العميل عبر navigator.globalPrivacyControl. إذا كنت تُشغّل التحليلات على الحافة، فالرأس هو نقطة التكامل الأنظف — يمكنك التصرف بناءً عليه قبل تشغيل أي منطق قياس، ودون إرسال بايت واحد من شيفرة التتبع.
كيف تبدو الإشارة فعليًا
تُعرّف مواصفة GPC حقل رأس طلب باسم Sec-GPC، وقيمته الوحيدة ذات المعنى هي 1، وتشير إلى أن المستخدم لا يوافق على بيع بياناته الشخصية أو مشاركتها. غياب الرأس يعني أنه لم يُعبَّر عن أي تفضيل — وهذا صراحةً ليس مثل قيمة 0 إيجابية. كما تُعرّف المواصفة موردًا معروفًا على /.well-known/gpc.json ينشره الموقع ليُعلن أنه يحترم الإشارة.
ولأن Sec-GPC يستخدم البادئة Sec-، فهو اسم رأس محظور: لا يمكن تعيينه أو تجاوزه عبر fetch() أو XMLHttpRequest، ما يجعل انتحاله من نصوص الصفحة أصعب مما لو كان رأسًا مخصصًا. ويُرسل مع طلبات التنقل والموارد الفرعية على حد سواء، لذا يراه عامل الحافة من أول زيارة.
قراءته على حافة Cloudflare
في Cloudflare Worker يكون الفحص سطرًا واحدًا، ويُنفَّذ قبل أن تقرر ما إذا كنت ستسجّل أي شيء:
export default {
async fetch(request) {
const gpc = request.headers.get('Sec-GPC') === '1';
// gpc === true -> المستخدم رفض البيع/المشاركة
// سجّل تبعًا لذلك إشاراتٍ مجمّعة آمنة للخصوصية فقط
return handle(request, { gpc });
}
};
بالنسبة إلى Monoid، ينطبق هذا مباشرةً على الطريقة التي يعمل بها المنتج أصلًا. فـ Monoid لا يخزّن كوكيز ولا localStorage، ولا يستخلص أي بصمة، ومن ثم لا يوجد أصلًا ملف تعريف عبر المواقع يجب كبته. إن GPC رفضٌ قانوني لـبيع ومشاركة البيانات الشخصية — وهو سلوك لا ينخرط فيه أبدًا تصميمٌ يضع الخصوصية أولًا ولا يستخدم الكوكيز. لذا يصبح الكشف عن Sec-GPC تدبير دفاع في العمق وسجلًا قابلًا للتدقيق يُثبت أن التفضيل قد لوحظ، بدلًا من كونه مفتاحًا يغيّر ما يخرج من المتصفح من بيانات.
لماذا يهم هذا قانونيًا، باختصار
قابلية إنفاذ GPC ليست نظرية. فقد أوضحت تسوية النائب العام لكاليفورنيا مع Sephora عام 2022 أن قانون CCPA يُلزم الشركات بمعاملة GPC كرفض صالح للبيع، وتقتضي لوائح California Privacy Rights Act احترام إشارات تفضيل الرفض. وقد تبنّت كولورادو وأنظمة ولايات أمريكية أخرى شروطًا مماثلة لآليات الرفض الشاملة. وقراءة الرأس من جانب الخادم تمنحك نقطة حتمية ومسجّلة يتحقق فيها الالتزام — أمتن كثيرًا من الاعتماد على مدير وسوم لإطلاق قاعدة.
نشر المورد المعروف
إن كنت تحترم GPC، فأعلن ذلك. قدّم /.well-known/gpc.json بمستند صغير:
{ "gpc": true, "lastUpdate": "2026-07-19" }
هذا ملف ثابت يمكنك إرجاعه من مسار على الحافة مع Content-Type: application/json. وهو يُبلغ المتصفحات والإضافات والمدققين بأن التفضيل محترم، ولا تكلّف صيانته شيئًا.
توجيهات عملية لمسارات التحليلات
- افحص الرأس قبل القياس، لا بعده. التصرف على الحافة يعني أن القرار يُتخذ قبل أي معالجة لاحقة.
- لا تعتبر الغياب موافقة. غياب رأس
Sec-GPCيعني ببساطة عدم وجود تفضيل؛ اجمع ذلك مع أساسك القانوني القائم. - احفظ أثر تدقيق بالحد الأدنى. تسجيل أن الطلب حمل
Sec-GPC: 1— دون ربطه بمعرّف — يُظهر حسن النية دون إنشاء ملف تعريف. - فضّل الرأس على واجهة جافاسكريبت في التحكم بالتنفيذ. خصيصة
navigator.globalPrivacyControlمفيدة لواجهة العميل، لكن الرأس يتيح لك القرار قبل تشغيل أي شيفرة.
الدرس الأوسع أن إشارات الخصوصية تتحول باطّراد إلى حقائق في طبقة النقل، لا إلى خصوصيات تطبيقية. فـ Sec-GPC يقف جنبًا إلى جنب مع DNT (المهجور)، ورأس Permissions-Policy، وReferrer-Policy كأشياء ينبغي لنظام التحليلات أن يقرأها لا أن يتجاهلها. وفي منتج بلا كوكيز يكون التغيير صغيرًا تحديدًا لأن البنية تُقلّل البيانات أصلًا — وهذا هو مقصد البناء بهذه الطريقة من البداية.
Comments
Loading comments…