الجهات الخارجية

من النادر أن يكون موقع الويب متكاملاً بشكل كامل. يوضح تقرير HTTP Web Almanac أن معظم المواقع الإلكترونية، بما يصل إلى %95 تقريبًا، تتضمّن بعض المحتوى التابع لجهات خارجية.

تُعرِّف "التقويم" المحتوى التابع لجهة خارجية على أنّه محتوى مستضاف على أصل مشترك وعام يُستخدَم على نطاق واسع من قِبل مجموعة متنوعة من المواقع وعدم التأثير فيها من قِبل مالك الموقع الفردي. وقد تكون هذه الصور أو الوسائط الأخرى، مثل الفيديوهات أو الخطوط أو النصوص. تمثل الصور والنصوص البرمجية أكثر من أي شيء آخر يتم إضافته معًا. لا يُعد المحتوى التابع لجهة خارجية ضروريًا لتطوير الموقع، ولكن قد يكون الأمر كذلك أيضًا؛ سوف تستخدم من المؤكد تقريبًا استخدام شيء ما تم تحميله من خادم مشترك عام، سواء كانت خطوط الويب إطارات iframe مضمّنة للفيديوهات أو الإعلانات أو مكتبات JavaScript على سبيل المثال، ربما تستخدم خطوط ويب يتم عرضها من Google Fonts، أو قياس الإحصاءات باستخدام "إحصاءات Google" ربما تكون قد أضفت أزرار "أعجبني" أو "تسجيل الدخول باستخدام" من شبكات التواصل الاجتماعي؛ تضمين خرائط أو فيديو أو معالجة عمليات الشراء أثناء التسوّق عبر خدمات تابعة لأطراف ثالثة فقد تكون في تتبع الأخطاء لتسجيل فرق التطوير لديك عبر أدوات مراقبة خارجية.

لأغراض الخصوصية، من المفيد اعتبار تعريف مختلف قليلاً وأقل اتساعًا: مورد تابع لجهة خارجية، وفي وخاصة نص تابع لجهة خارجية، ويتم تقديمه من أصل مشترك وعام ويُستخدم على نطاق واسع كما هو موضح، ولكنه تمت كتابته أيضًا من قِبل شخص آخر غير مالك الموقع الإلكتروني إن جانب حقوق التأليف التابعة لجهة خارجية هو العامل الأساسي عند التفكير في كيفية حماية المستخدِمين والخصوصية من الآخرين. سيقودك هذا إلى التفكير في المخاطر الموجودة، ثم تحديد كيفية أو ما إذا كنت ستستخدم بمورد تابع لطرف ثالث بناءً على تلك المخاطر. كما ناقشنا سابقًا، ستساعدك هذه الأشياء على فهم السياق وبالتالي فهم المفاضلات التي تحتاج إلى إجرائها، وما تعنيه.

هذا ليس المقصود تمامًا عند مناقشة "المراجع الخارجية". بشكل عام: الفرق بين بيانات الطرف الأول الطرف الثالث هو حقًا شيء ما يتعلق بالسياق الذي يتم فيه استخدام شيء ما. النص البرمجي الذي يتم تحميله من موقع إلكتروني آخر هو جهة خارجية وقد يتضمن طلب HTTP الذي يحمِّل النص البرمجي ملفات تعريف الارتباط، ولكنها ليست "ملفات تعريف ارتباط تابعة لجهات خارجية" في الحقيقة؛ مجرد ملفات تعريف ارتباط، وما إذا كانت "جهات خارجية" أو "الطرف الأول" تعتمد على ما إذا كان يتم تحميل النص البرمجي على أو صفحة في موقع مالك النص البرمجي.

لماذا نستخدم موارد تابعة لجهات خارجية؟

تشكّل الجهات الخارجية طريقة رائعة لإضافة وظائف إلى موقعك الإلكتروني. وقد تكون تلك الميزات ظاهرة للمستخدمين أو غير مرئية وظائف مطوّر البرامج مثل تتبُّع الأخطاء، غير أنّها تقلِّل عبء التطوير ويتم الاحتفاظ بالنصوص البرمجية نفسها بواسطة شخص آخر: فريق تطوير الخدمة التي تدرجها. ينجح كل ذلك بسبب قابلية إنشاء الويب: والقدرة على تكوين أجزاء معًا لتكوين كل أكبر من مجموعه.

يقدم تقويم الويب الخاص بأرشيف HTTP وصفًا لطيفًا:

توفر الجهات الخارجية مجموعة لا تنتهي من الصور والفيديوهات والخطوط والأدوات والمكتبات والتطبيقات المصغّرة وأجهزة التتبع والإعلانات وأي شيء آخر يمكنك تخيله لتضمينه في صفحات الويب لدينا. وهذا يمكّن حتى أكثر الأشخاص خبرة تقنية يمكنهم إنشاء المحتوى ونشره على الويب. بدون أطراف ثالثة، ازدادت احتمالية أن يكون وسيطًا أكاديميًا مملًا ومستندًا إلى النصوص، بدلاً من أن يكون وسيطًا غنيًا وغامرًا ومعقدًا يُعد جزءًا لا يتجزأ من حياة العديد منا اليوم.

ما الذي يمكن أن تفعله الموارد الخارجية؟

الوصول إلى بعض المعلومات

عند استخدام مورد من جهة خارجية على موقعك الإلكتروني، بصرف النظر عن هويته، يتم تمرير بعض المعلومات إلى هذه الجهة. على سبيل المثال، إذا قمت بتضمين صورة من موقع آخر، فسوف يمر طلب HTTP الذي يقدمه متصفح المستخدم عبر المُحيل مع عنوان URL لصفحتك، بالإضافة إلى عنوان IP للمستخدم.

تتبُّع إجراءات المستخدم على مواقع إلكترونية متعددة

ومع متابعة المثال نفسه، عندما يتم تحميل الصورة من موقع إلكتروني تابع لجهة خارجية، يمكن أن تتضمّن ملف تعريف ارتباط، كما سيُستخدم ملف تعريف الارتباط هذا. يتم إرساله مرة أخرى إلى الجهة الخارجية عندما يطلب المستخدم تلك الصورة في المرة التالية. وهذا يعني أنه يمكن للجهة الخارجية معرفة أن استخدام الخدمة على موقعك الإلكتروني، ويمكنه إعادة إرسال ملف تعريف ارتباط، من المحتمل أن يحتوي على معرّف فريد لهذا المستخدم. هذا يعني أنّ في المرة القادمة التي يزور فيها المستخدِم موقعك الإلكتروني أو أي موقع إلكتروني آخر يتضمّن موردًا من تلك الجهة الخارجية، سيتم إرسال ملف تعريف ارتباط المعرّف مرة أخرى. يتيح ذلك للجهة الخارجية إنشاء سجلّ بالأماكن التي يزورها المستخدم: موقعك الإلكتروني، والمواقع الأخرى التي تستخدم نفس مورد الجهة الخارجية في جميع أنحاء الويب.

الهدف من ذلك التتبّع عبر المواقع الإلكترونية: السماح لجهة خارجية بجمع سجلّ بنشاط المستخدم على العديد من المواقع الإلكترونية طالما أنّ تلك من مواقع الويب جميع هذه المواقع تستخدم موردًا قادمًا من نفس الجهة الخارجية. قد يكون ذلك خطًا أو صورة أو ورقة أنماط - جميع الموارد الثابتة. وقد يكون أيضًا موردًا ديناميكيًا: نص برمجي أو زر أو إعلان على وسائل التواصل الاجتماعي. يمكن للنص البرمجي المضمَّن جمع المزيد من المعلومات. لأنّها ديناميكية: يمكنها فحص متصفّح المستخدم وبيئته وتمرير هذه البيانات إلى جهة الإنشاء. يمكن لأي نص برمجي القيام بذلك إلى حد ما، كما يمكن للموارد الديناميكية التي لا يتم تقديمها كنص، مثل تضمين وسائل التواصل الاجتماعي أو إعلان أو زر مشاركة. إذا ألقيت نظرة على تفاصيل بانر ملفات تعريف الارتباط على مواقع إلكترونية رائجة، يمكنك الاطّلاع على قائمة بالمؤسسات التي قد تضيف ملف تعريف ارتباط للتتبع إلى مستخدمي موقعك لتكوين صورة عن أنشطتهم لإنشاء ملف شخصي لهذا المستخدم. هناك المئات منها. إذا كان هناك طرف ثالث يقدم الخدمة مجانًا، فمن الطرق التي يمكن أن تكون مجدية منها اقتصاديًا لأنهم يجمعون هذه البيانات ثم يحققون الربح منها.

يُعدّ نموذج تهديد الخصوصية المستهدَف دليلاً مفيدًا لأنواع مشاكل الخصوصية التي يجب أن يحمي المتصفِّح المستخدمين منها. هذه وثيقة لا تزال قيد المناقشة في وقت الكتابة، ولكنها تقدم بعض التصنيفات عالية المستوى لأنواع لتهديدات الخصوصية. تكمن المخاطر الناجمة عن موارد الجهات الخارجية في المقام الأول "التعرف غير المرغوب فيه عبر المواقع"، حيث يكون الموقع الإلكتروني للمستخدم نفسه في عدة مواقع إلكترونية وأداة "الإفصاح عن المعلومات الحسّاسة" التي يمكن أن يجمعها المعلومات التي يعتبرها المستخدم حساسة.

نسلّط الضوء هنا على تمييز رئيسي: عملية التعرّف على المواقع الإلكترونية غير المرغوب فيها لا تُعدّ أمرًا سيئًا حتى إذا لم تكن الجهة الخارجية تجمع معلومات حساسة إضافية. المعلومات منه، لأنه يسلب قدرة المستخدم على التحكم في هويته. الحصول على إمكانية الوصول إلى مُحيل المستخدم وعنوان IP وملفات تعريف الارتباط إفصاحًا غير مرغوب فيه في حد ذاته. يأتي استخدام موارد الجهات الخارجية مع عنصر تخطيط لكيفية استخدامك بطريقة تحافظ على الخصوصية. فبعض هذه الأعمال يتم تنفيذه من قِبلك كمطوّر للمواقع الإلكترونية، في حين يتم تنفيذ البعض الآخر من خلال المتصفّح. في دوره كوكيل المستخدم أي، الوكيل الذي يعمل نيابةً عن المستخدم بهدف تجنب الكشف عن المعلومات الحساسة التعرّف على المواقع الإلكترونية غير المرغوب فيها حيثما أمكن ذلك. سنناقش أدناه بشكل أكثر تفصيلاً حول إجراءات التخفيف والأساليب التي يمكن تنفيذها على المتصفّح. ومستوى تطوير الموقع.

رمز جهة خارجية من جهة الخادم

لقد غيّر تعريفنا السابق للطرف الثالث عمدًا أسلوب "تقويم HTTP" من جانب العميل (كما هو مناسب للتقرير!)، بما في ذلك حقوق التأليف والتابعة لطرف ثالث، لأن الطرف الثالث هو أي شخص يعرف أي شيء من منظور الخصوصية عن المستخدمين وليسوا عنك.

ويشتمل ذلك على الجهات الخارجية التي توفر الخدمات التي تستخدمها على الخادم، بالإضافة إلى العميل. من خصوصية فإن مكتبة تابعة لجهة خارجية (مثل شيء مدرج من NPM أو Composer أو NuGet) مهمة أيضًا. هل تتجاوز تبعياتك البيانات خارج حدودك؟ إذا قمت بتمرير البيانات إلى خدمة تسجيل أو قاعدة بيانات مستضافة عن بُعد، إذا كانت المكتبات تضمّن أيضًا "هاتف المنزل" إلى مؤلفيها، فقد تكون هذه الروابط في وضع يتيح لها انتهاك حقوق الطبع والنشر خصوصية وبالتالي فهي بحاجة إلى التدقيق. وعادة ما يتعين عليك تقديم بيانات المستخدم إلى جهة خارجية مستندة إلى الخادم، مما يعني أن البيانات التي يعرضها تكون أكثر تحكمًا. وعلى النقيض من ذلك، فإن جهة خارجية تستند إلى عميل — مصدر نصي أو مورد HTTP على موقعك الإلكتروني وجلبها من خلال متصفّح المستخدم، تتيح جمع بعض البيانات من المستخدم مباشرةً بدون الحاجة إلى تلك العملية المجموعة التي تعتمدها أنت. ستهتم معظم هذه الوحدة بكيفية تحديد الجهات الخارجية من جانب العميل وقد اخترت تضمين وعرض المستخدمين، بالضبط بسبب قلة إمكانية التوسط لديك. لكن الأمر يستحق التفكير في تأمين الرمز من جهة الخادم حتى تتمكّن من فهم الاتصالات الصادرة منه وتسجيل أي منها أو حظره غير متوقعة. التفاصيل حول كيفية إجراء ذلك بالضبط تقع خارج نطاقنا هنا (تعتمد بشكل كبير على إعداد الخادم لديك) ولكن فهذا جزء آخر من موقفك من الأمان والخصوصية.

لماذا عليك توخي الحذر مع الجهات الخارجية؟

النصوص البرمجية والميزات التابعة لجهات خارجية مهمة للغاية، وهدفنا كمطوّرين على الويب هو دمج هذه الأشياء وعدم الابتعاد عنها! ولكن هناك مشكلات محتملة. قد يتسبب المحتوى التابع لجهة خارجية في حدوث مشاكل في الأداء ويمكن أن قد يؤدي ذلك أيضًا إلى حدوث مشاكل أمنية بسبب إدراج خدمة خارجية ضمن حدود الثقة. لكن الجهات الخارجية المحتوى إلى أن يتسبب في حدوث مشكلات تتعلق بالخصوصية!

عندما نتحدث عن موارد الجهات الخارجية على الويب، من المفيد اعتبار أن مشكلات الأمان (من بين أمور أخرى) يمكن لجهة خارجية سرقة البيانات من شركتك، ويختلف ذلك عن المشاكل المتعلقة بالخصوصية (من بين أمور أخرى) حيث يسرق أو يحصل على إمكانية وصول جهة خارجية إلى حسابات المستخدمين البيانات بدون موافقتك (أو موافقتك منهم).

من أمثلة مشكلات الأمان ما يحدث عندما تستخدم "أدوات الزحف إلى الويب" سرقة معلومات بطاقة الائتمان--وهو مورد خارجي يتم تضمينه الموجود في إحدى الصفحات التي يُدخل فيها المستخدم تفاصيل بطاقة الائتمان يمكنها سرقة تفاصيل بطاقة الائتمان هذه وإرسالها إلى الجهة الخارجية الضارة. يبتكر المستخدمون الذين ينشئون هذه النصوص القصيرة أسلوبًا إبداعيًا في العمل على أماكن لإخفائها. ملخّص واحد يصف كيف يمكن للنصوص البرمجية الأقل استيعابًا مخفيّة في محتوى تابع لجهة خارجية، مثل الصور المستخدَمة لشعارات المواقع الإلكترونية والرموز المفضّلة وشبكات التواصل الاجتماعي. المكتبات الرائجة مثل jQuery و Modernizr و"إدارة العلامات من Google" وأدوات الموقع مثل نوافذ المحادثة المباشرة وملفات CSS.

تختلف مشاكل الخصوصية قليلاً. تشكِّل هذه الجهات الخارجية جزءًا من العرض الذي تقدّمه. من أجل الحفاظ على تجربة الوثوق بك، عليك أن تكون واثقًا من أنّ المستخدمين يثقون بهم. إذا كانت جهة خارجية تستخدمها تجمع بيانات حول المستخدمين ثم إساءة استخدامها، أو جعل من الصعب حذفه أو اكتشافه، أو التعرض لاختراق للبيانات، أو انتهاك سياسات المستخدمين سوف يلاحظ المستخدمون على الأرجح أنّ ثقتهم في الخدمة التي تقدّمها انهيار، وليس فقط في الجهة الخارجية. وهي سمعتك وعلاقتكما. لهذا السبب من المهم أن تسأل نفسك: هل تثق والجهات الخارجية التي تستخدمها على موقعك؟

ما هي بعض الأمثلة على الجهات الخارجية؟

نحن نناقش موضوع "الجهات الخارجية". ولكن بشكل عام، توجد أنواع مختلفة بالفعل، ويمكن لكل منها الوصول إلى كميات مختلفة من بيانات المستخدم. على سبيل المثال، في حال إضافة عنصر <img> إلى HTML، وتحميله من خادم مختلف، سيعطي الخادم معلومات مختلفة. عن المستخدمين من إضافة عنصر <iframe> أو عنصر <script>. هذه أمثلة وليست قائمة شاملة، لكنها مفيدًا في فهم الفروق بين الأنواع المختلفة لعناصر الطرف الثالث التي يمكن أن يستخدمها موقعك.

طلب مورد من مواقع إلكترونية متعددة

المورد المتعدد المواقع هو أي شيء على موقعك يتم تحميله من موقع مختلف وليس <iframe> أو <script>. أمثلة تتضمن <img> و<audio> و<video> وخطوط الويب التي يتم تحميلها بواسطة زخارف CSS وWebGL. ويتم تحميلها جميعًا عن طريق طلب HTTP، كما هو موضح سابقًا، ستتضمن طلبات HTTP هذه أي ملفات تعريف ارتباط تم تعيينها مسبقًا بواسطة الموقع الآخر، وعنوان IP للمستخدم صاحب الطلب، وعنوان URL للصفحة الحالية كمُحيل. تضمّنت جميع طلبات الجهات الخارجية هذه البيانات تلقائيًا في السابق، على الرغم من والجهود المبذولة لتقليل أو عزل البيانات التي يتم تمريرها إلى جهات خارجية من خلال متصفحات مختلفة، كما هو موضح في مقالة "فهم "إجراءات حماية المتصفحات التابعة لجهات خارجية" المزيد.

تضمين إطار iframe عبر المواقع الإلكترونية

يمكن للمستند الكامل المضمّن في صفحاتك عبر <iframe> أن يطلب إذنًا إضافيًا للوصول إلى واجهات برمجة تطبيقات المتصفّح، بالإضافة إلى الصورة الثلاثية وعنوان IP والمُحيل. تحدّد هذه السمة واجهات برمجة التطبيقات المتاحة للصفحات البالغ عددها <iframe> والطريقة التي تطلب الوصول بها، والتي تتعلّق بكل متصفّح على حدة. تخضع لتغييرات حاليًا: يُرجى الاطّلاع على "سياسة الأذونات" أدناه للتعرّف على الجهود الحالية لتقليل أو مراقبة إمكانية الوصول إلى واجهة برمجة التطبيقات في النُسخ المضمّنة المستندات.

تنفيذ JavaScript على مواقع إلكترونية متعددة

يؤدي تضمين عنصر <script> إلى تحميل وتشغيل JavaScript على جميع المواقع الإلكترونية في سياق المستوى الأعلى لصفحتك. وهذا يعني أن لدى النص البرمجي الذي يتم تشغيله إذن وصول كامل إلى كل ما تفعله النصوص البرمجية الخاصة بالطرف الأول. ستستمر أذونات المتصفّح في إدارة هذه البيانات لذا، فإن طلب موقع المستخدم (على سبيل المثال) سيظل يتطلب موافقة المستخدم. لكن أي معلومات موجودة في الصفحة أو المتاحة كمتغيرات JavaScript يمكن قراءتها باستخدام هذا النص البرمجي، ولا يقتصر الأمر على ملفات تعريف الارتباط التي يتم تمريرها إلى الجهة الخارجية كجزء من الطلب، وكذلك ملفات تعريف الارتباط المخصصة لموقعك الإلكتروني فقط. وبالمثل، يتم تحميل نص برمجي تابع لجهة خارجية على بإمكان صفحتك إجراء جميع طلبات HTTP نفسها التي تستخدمها الرمز البرمجي الخاص بك، ما يعني أنّه يمكنها إرسال طلبات fetch() إلى واجهات برمجة التطبيقات الخلفية للحصول على البيانات.

تضمين مكتبات الجهات الخارجية في التبعيات الخاصة بك

كما أوضحنا سابقًا، من المرجح أن تشتمل التعليمة البرمجية من جانب الخادم أيضًا على تبعيات تابعة لجهات خارجية، ولا يمكن تمييزها عن رموزك الرموز البرمجية في قوتها؛ التعليمة البرمجية التي تقوم بتضمينها من مستودع GitHub أو مكتبة لغة البرمجة الخاصة بك (npm وPyPI وcomposer وما إلى ذلك) يمكنه قراءة نفس البيانات التي تستطيع التعليمات البرمجية الأخرى الخاصة بك.

التعرف على الجهات الخارجية

يتطلب ذلك بعد ذلك فهم قائمة المورّدين التابعين لجهة خارجية لديك، وفهم بياناتهم المتعلقة بالخصوصية وعملية جمع البيانات وبيانات بمواقف وسياسات تجربة المستخدم. وبعد ذلك، يصبح هذا الفهم جزءًا من سلسلة المفاضلات التي تجريها: مدى فائدة وأهمية هي الخدمة، تتم موازنتها مقابل مدى تطفل الطلبات أو إزعاجها أو إثارة قلقها. جهة خارجية إذا كان المحتوى يوفّر قيمة من خلال نقل الأعباء الثقيلة من مالك الموقع الإلكتروني ويسمح لك بالتركيز على كفاءاتك الأساسية ولذا فإن هناك قيمة في إجراء هذه المقايضة والتضحية ببعض الراحة والخصوصية لدى المستخدم من أجل تحسين تجربة المستخدم. ومع ذلك، من المهم عدم الخلط بين تجربة المستخدم وتجربة مطوّر البرامج، مع ذلك: "من الأسهل على فريق مطوّري البرامج إنشاء الخدمة" ليست قصة مقنعة للمستخدمين.

كيفية فهمك لهذا الفهم هي عملية التدقيق.

تدقيق الجهات الخارجية

فهم ما تفعله جهة خارجية هو عملية التدقيق. يمكنك القيام بذلك تقنيًا وغير فني، لجهة خارجية فردية ولمجموعتك بأكملها

إجراء تدقيق غير فني

الخطوة الأولى غير تقنية: اقرأ سياسات الخصوصية لدى المورّدين. إذا قمت بتضمين أي موارد خارجية، مراجعة سياسات الخصوصية ستكون هذه المستندات طويلة ومليئة بالنص القانوني، وقد تستخدم بعض المستندات بعض المناهج حذّرهم تحديدًا من الوحدات السابقة، مثل العبارات العامة جدًا وبدون أي إشارة بكيفية أو وقت إزالة البيانات التي تم جمعها. من المهم أن تدرك أنه من منظور المستخدم، فإن جميع البيانات التي جمعتها على موقعك، بما في ذلك الجهات الخارجية، لسياسات الخصوصية هذه. حتى لو أجريت كل شيء بشكل صحيح، عندما تتحلى بالشفافية بشأن أهدافك وتتجاوز أهداف المستخدمين لخصوصية البيانات الحساسية، يمكن أن يحملك المستخدمون مسؤولية أي شيء تفعله الجهات الخارجية التي اخترتها أيضًا. إذا كان هناك أي شيء في سياسات الخصوصية لديهم والتي لا ترغب في ذكرها في سياساتك؛ لأنها قد تقلل من الوثوق به، النظر فيما إذا كان هناك مورد بديل.

هذا شيء يمكن أن يقترن بشكل مفيد مع التدقيق الفني الذي تمت مناقشته بشكل أكبر، حيث يُطلع أحد البعض يجب أن تعرف الموارد الخارجية التي تدمجها لأغراض تجارية (مثل شبكات الإعلانات) أو محتوى مضمّن) لأنه تكون هناك علاقة عمل قائمة. هذا هو أفضل مكان للبدء غير التقني التدقيق. من المحتمل أيضًا أن يحدد التدقيق الفني جهات خارجية، لا سيما تلك المدرَجة في الخدمة الفنية من الأسباب المتعلقة بالعمل (المكونات الخارجية والتحليلات ومكتبات الأدوات المساعدة)، ويمكن أن تضم هذه القائمة والجهات الخارجية التي تركز على الأعمال. والهدف هنا هو شعورك كمالك للموقع الإلكتروني بفهم فهمك للإرشادات الجهات التي تضيفها إلى موقعك الإلكتروني، ولكي تتمكّن كنشاط تجاري من تقديم مستشارك القانوني من خلال قائمة الجهات الخارجية هذه للتأكّد من أنّك تستوفي أي التزامات مطلوبة.

إجراء تدقيق فني

بالنسبة للتدقيق الفني، من المهم استخدام الموارد في الموقع كجزء من موقع الويب؛ بمعنى ألا تحمّل تبعية باستخدام حزام اختبار وافحصه بهذه الطريقة. تأكد من أنك ترى كيف تعمل تبعياتك كجزء من موقع الويب الفعلي الخاص بك، المنشورة على الإنترنت العام وليس في وضع الاختبار أو التطوير. من المفيد جدًا عرض موقع الويب الخاص بك مستخدم جديد. افتح متصفحًا في ملف شخصي جديد وواضح، حتى لا تكون مسجِّلاً الدخول مع عدم وجود اتفاقية مخزَّنة، ثم جرِّب الانتقال إلى موقعك الإلكتروني.

اشترِك على موقعك الإلكتروني للحصول على حساب جديد، في حال تقديم حسابات مستخدمين. سيتولى فريق التصميم تنسيق هذا المستخدم الجديد عملية الاكتساب من منظور تجربة المستخدم، ولكن يمكن أن يكون من الأمثلة التوضيحية التعامل معها من منظور الخصوصية. لا تنقر ببساطة "قبول" أو البنود والشروط، أو تحذير ملفات تعريف الارتباط، أو سياسة الخصوصية؛ تحديد مهمة استخدام خدمتك الخاصة بدون الكشف عن أي معلومات شخصية أو وجود أي ملفات تعريف ارتباط للتتبع، ومعرفة ما إذا كان بإمكانك إجراء ذلك ومدى صعوبة إجراء ذلك. من المفيد أيضًا الاطّلاع على أدوات المطوّرين في المتصفّح لمعرفة المواقع الإلكترونية التي يتم الوصول إليها والبيانات التي يتم تمريرها إلى لتلك المواقع. وتوفر أدوات المطوّرين قائمة بطلبات HTTP منفصلة (عادةً ما تكون في قسم بعنوان "الشبكة")، ويمكنك أن ترى من هنا الطلبات المجمّعة حسب النوع (HTML وCSS والصور والخطوط وJavaScript والطلبات التي تم بدؤها بواسطة JavaScript). من الممكن أيضًا إضافة عمود جديد لإظهار نطاق كل طلب، والذي سيوضح عدد الأماكن المختلفة التي يتم الاتصال بها، وقد تكون هناك "طلبات من جهات خارجية" مربع اختيار لعرض الجهات الخارجية فقط. (قد يكون من المفيد أيضًا استخدام Content-Security-Policy إعداد التقارير لإجراء تدقيق مستمر، للمزيد من المعلومات).

يمكن أن تكون أداة "طلب منشئ الخرائط" من "سايمون هيرن" أيضًا نظرة عامة مفيدة على جميع الطلبات الفرعية التي تقدمها الصفحة المتاحة للجمهور.

وهذه هي أيضًا النقطة التي يمكنك فيها تضمين الجهات الخارجية التي تركز على الأعمال والمحددة كجزء من التدقيق غير الفني (أي: قائمة الشركات التي تربطك بها علاقة مالية من أجل استخدام مواردها). الهدف هنا هو لمطابقة قائمة الأطراف الثالثة التي تعتقد أنك تستخدمها (من السجلات المالية والقانونية) والقائمة التي تستخدمها (من خلال النظر في طلبات HTTP التابعة لجهة خارجية التي يرسلها موقعك الإلكتروني). ينبغي أن تكون قادرًا على تحديد كل ثالث عمل الجهة التي يتم فيها تقديم الطلبات الفنية الصادرة. في حال عدم التمكّن من تحديد طلبات لجهة خارجية عند إجراء التدقيق الفني محددة من خلال علاقة العمل، فمن المهم معرفة السبب وتوجيه الاختبار: ربما يكون الطرف الثالث يتم تحميل المورد في بلد محدّد فقط أو على نوع جهاز معيّن أو للمستخدمين الذين سجّلوا دخولهم. سيؤدي ذلك إلى تكبير قائمة بمناطق الموقع الإلكتروني المطلوب تدقيقها والتأكد من مشاهدتك لجميع عمليات الوصول الصادرة. (أو ربما سيحدد طرفًا ثالثًا موارد تدفع مقابلها ولا تستخدمها، مما يسعد قسم الشؤون المالية دائمًا).

بعد تضييق نطاق قائمة الطلبات للجهات الخارجية التي تريد أن تكون جزءًا من التدقيق، انقر على سوف يعرض أي طلب فردي تفاصيله، وعلى وجه التحديد، البيانات التي تم تمريرها إلى هذا الطلب. من المهم أيضًا من الشائع أن يؤدي طلب الجهة الخارجية الذي تبدأه جهة خارجية الرمز بعد ذلك إلى تقديم العديد من الطلبات الأخرى من جهات خارجية. تكون هذه الجهات الخارجية الإضافية "مستوردة" أيضًا في سياسة الخصوصية الخاصة بك. هذه المهمة شاقة ولكنها ذات قيمة، ويمكن إدراجه في الغالب في التحليلات الحالية وينبغي أن يكون فريق تطوير الواجهة الأمامية لديك يدقق بالفعل في طلبات (ربما من خلال الاستعانة بأدوات حالية مثل WebPageTest أو Lighthouse) ودمج بيانات وتدقيق الخصوصية في هذه العملية إلى تسهيل ذلك.

خريطة طلب web.dev
خريطة طلب (مبسّطة للغاية) لموقع web.dev، تعرض المواقع الإلكترونية التابعة لجهات خارجية التي تطلب مواقع إلكترونية أخرى تابعة لجهات خارجية، وما إلى ذلك

الإجراءات الموصى بها

فتح متصفح يحتوي على ملف شخصي جديد وواضح للمستخدم، حتى لا تكون مسجّلاً الدخول وليس لديك اتفاقية مخزّنة ثم فتح المتصفّح أدوات التطوير لوحة الشبكة للاطلاع على جميع الطلبات الصادرة. أضِف عمودًا جديدًا لإظهار نطاق كل طلب، وتحقَّق من "طلبات الجهات الخارجية" مربع اختيار لعرض الجهات الخارجية فقط إن وجدت. بعد ذلك:

  • انتقِل إلى موقعك الإلكتروني.
  • سجِّل الاشتراك في حساب جديد إذا كنت توفّر حسابات مستخدمين.
  • حاوِل حذف حسابك الذي أنشأته.
  • نفِّذ إجراءً عاديًا أو اثنين على الموقع (سيعتمد هذا الإجراء بالضبط على ما ينفّذه موقعك الإلكتروني، ولكن عليك اختيار الإجراءات الشائعة التي يتّخذها معظم المستخدمين).
  • نفذ إجراءً أو اثنين تعرف أن يتضمن تبعيات أطراف ثالثة على وجه الخصوص. قد يتضمن ذلك مشاركة المحتوى مع وسائل التواصل الاجتماعي، أو بدء مسار دفع، أو تضمين محتوى من موقع آخر.

عند إجراء كل مهمة من هذه المهام، قم بإنشاء سجل للموارد المطلوبة من النطاقات التي ليست مملوكة لك، من خلال إلقاء نظرة على لوحة "الشبكة" كما هو موضح. هذه هي بعض الجهات الخارجية التي تستخدمها. ومن الطرق الجيدة لإجراء ذلك استخدام أدوات الشبكة في المتصفح لالتقاط بيانات الشبكة سجلات الطلبات في ملف HAR.

ملفات HAR والتقاط

ملف HAR هو تنسيق JSON موحّد لجميع طلبات الشبكة التي تقدّمها إحدى الصفحات. للحصول على ملف HAR لصفحة معيّنة، في:

Chrome

افتح أدوات مطوري البرامج في المتصفح (القائمة > المزيد من الأدوات > أدوات المطوّرين)، وانتقِل إلى لوحة "الشبكة"، وحمِّل الصفحة (أو أعِد تحميلها)، اختر رمز حفظ السهم المتجه لأسفل في أعلى اليمين بالقرب من القائمة المنسدلة "عدم التقييد" .

لوحة شبكة &quot;أدوات مطوري البرامج في Chrome&quot; مع تمييز رمز تنزيل HAR
Firefox

افتح أدوات مطوّري برامج المتصفح (القائمة > المزيد من الأدوات > أدوات مطوّري برامج الويب)، انتقل إلى لوحة "الشبكة"، وحمّل (أو أعِد تحميل) الصفحة، واختر رمز الترس في أعلى اليمين بجانب القائمة المنسدلة للتقييد. من القائمة، اختَر حفظ الكل باسم HAR**.

لوحة الشبكة الخاصة بأدوات مطوري البرامج في Firefox مع تمييز خيار Save All As Har (حفظ الكل باسم).
Safari

افتح أدوات مطوّري برامج المتصفّح (قائمة > تطوير > عرض Web Inspector، وإذا لم تظهر لك قائمة Develop (تطوير)، يمكنك تفعيلها من القائمة > Safari > الإعدادات المفضّلة > متقدم > عليك عرض قائمة "التطوير" في شريط القوائم، والانتقال إلى لوحة "الشبكة"، وتحميل (أو إعادة تحميل) الصفحة واختَر تصدير في أعلى يسار الصفحة (على يسار "الاحتفاظ بالسجلّ"، وقد تحتاج إلى تكبير النافذة).

لوحة شبكة Safari Web Inspector Network مع تمييز خيار تصدير HAR.

لمزيد من التفاصيل، يمكنك أيضًا تسجيل ما يتم إرساله إلى جهات خارجية (في قسم الطلب)، على الرغم من أن هذه البيانات غالبًا ما تكون مبهمة ولا يمكن تفسيرها بشكل مفيد.

أفضل الممارسات عند دمج جهات خارجية

يمكنك وضع سياساتك الخاصة بشأن الجهات الخارجية التي يستخدمها موقعك: تغيير مزوّد الإعلانات الذي تستخدمه بناءً على ممارساته، أو مدى الإزعاج أو التطفل في النافذة المنبثقة الخاصة بالموافقة على ملفات تعريف الارتباط، أو ما إذا كنت تريد استخدام أزرار وسائل التواصل الاجتماعي على موقعك الإلكتروني أو روابط تتبع في الرسائل الإلكترونية أو روابط utm_campaign التي سيتم تتبعها في Google Analytics في تغريداتك. هناك جانب يجب مراعاته عند وتطوير موقع ما هو وضع الخصوصية والأمان لخدمة التحليلات. تتداول بعض خدمات التحليلات بشكل صريح حماية الخصوصية. تتوفّر كثيرًا أيضًا طُرق لاستخدام نص برمجي تابع لجهة خارجية يوفّر حماية الخصوصية من تلقاء نفسه: لست الفريق الأول الذي يسعى إلى تحسين تجربة الخصوصية وحمايتها من جمع بيانات الطرف الثالث، قد تكون حلولاً بالفعل. وأخيرًا، أصبح العديد من مقدّمي الخدمات التابعين لجهات خارجية أكثر حساسية لمشاكل جمع البيانات في الوقت الحالي أكثر ممّا كان في الماضي، وغالبًا ما تكون هناك ميزات أو معلَمات يمكنك إضافتها لتفعيل وضع حماية أكبر للمستخدمين. وإليك بعض الأمثلة.

عند إضافة زر مشاركة على وسائل التواصل الاجتماعي

يمكنك تضمين أزرار HTML مباشرةً: يحتوي الموقع https://sharingbuttons.io/ على بعض الأمثلة المصمّمة بشكل جيد. أو يمكنك إضافة روابط HTML عادية. عادةً ما يتم خسارة "عدد الحصص" الإحصاءات وقدرتك على تصنيف عملائك في إحصاءات Facebook. هذا مثال على الموازنة بين الاستعانة بمقدّم خدمة تابع لجهة خارجية وتلقّي عدد أقل من البيانات الإحصائية.

بشكل أكثر عمومية، عندما تقوم بتضمين أداة تفاعلية من نوع ما من جهة خارجية، فيمكن غالبًا توفير ورابط إلى هذه الجهة الخارجية. وهذا يعني أنّ موقعك الإلكتروني لا يقدّم تجربة مضمّنة، ولكنّه يغيّر القرار بشأن المشاركة. والطرف الثالث معك إلى المستخدم الذي يمكنه اختيار التفاعل أو عدم التفاعل على النحو الذي يفضِّله.

على سبيل المثال، يمكنك إضافة روابط لـ Twitter وFacebook لمشاركة خدمتك على mysite.example.com مثل هذا:

<a href="https://facebook.com/sharer/sharer.php?u=https%3A%2F%2Fmysite.example.com"
   rel="noopener" aria-label="Share on Facebook" target="_blank" >Share on Facebook</a>
<a href="https://twitter.com/intent/tweet/?text=My%20cool%20service!&amp;url=https%3A%2F%2Fmysite.example.com"
   rel="noopener" aria-label="Share on Twitter" target="_blank">Share on Twitter</a>

تجدر الإشارة إلى أنّ Facebook يسمح بتحديد عنوان URL لمشاركته، في حين يسمح Twitter بتحديد عنوان URL وبعض النصوص.

عند تضمين فيديو

عند تضمين فيديوهات من مواقع استضافة فيديوهات، ابحث عن خيارات الحفاظ على الخصوصية في رمز التضمين. على سبيل المثال، بالنسبة إلى YouTube، استبدِل youtube.com في عنوان URL المضمّن بـ www.youtube-nocookie.com لتجنُّب تتبُّع ملفات تعريف الارتباط. يتم وضعها على المستخدمين الذين يشاهدون صفحة التضمين. يمكنك أيضًا تحديد "تفعيل الوضع المحسّن للخصوصية" عند إنشاء مشاركة أو تضمين رابط من YouTube نفسه هذا مثال جيد على استخدام وضع أكثر حماية للمستخدمين توفّره الجهة الخارجية. (يوضّح https://support.google.com/youtube/answer/171780 هذا الموضوع بمزيد من التفصيل، وخيارات التضمين الأخرى المخصصة لمنصة YouTube على وجه التحديد).

يتوفّر في مواقع الفيديو الأخرى خيارات أقل في هذا الشأن، على سبيل المثال، لا يوفّر TikTok طريقة لتضمين فيديوهات بدون تتبّع. في وقت كتابة هذه المقالة. يمكنك استضافة مقاطع الفيديو بنفسك (باستخدام خيار بديل)، ولكن قد يكون والمزيد من العمل، خاصةً لدعم العديد من الأجهزة.

كما هو الحال مع التطبيقات المصغّرة التفاعلية التي ناقشناها سابقًا، من الممكن في كثير من الأحيان استبدال فيديو مضمّن برابط إلى الموقع الإلكتروني الذي يقدّم العرض. تُعدّ هذه الطريقة أقل تفاعلية لأنّ الفيديو لن يتم تشغيله بشكل مضمّن، ولكنّه يترك اختيار ما إذا كنت تريد مشاهدته مع المستخدم. يمكن أن تظهر فائدة هذا بوضوح أكبر يُستخدم كمثال على "نمط الواجهة"، وهو الاسم الذي يُستخدم لاستبدال المحتوى التفاعلي ديناميكيًا بشيء يتطلب المستخدم الإجراء لتشغيله. يمكن استبدال فيديو TikTok المضمّن برابط عادي ينقل إلى صفحة الفيديو على TikTok، ولكن مع إضافة روابط أخرى. من الممكن استرداد صورة مصغّرة للفيديو وعرضها وجعلها رابطًا. حتى إذا لم يكن مقدم خدمة الفيديو المحدد يوفّران طريقة سهلة لتضمين الفيديوهات بدون تتبّع، كما أنّ العديد من مضيفي الفيديو يتيحون استخدام oEmbed، وهي واجهة برمجة تطبيقات يمكن استخدامها مع يؤدي الرابط إلى فيديو أو محتوى مضمّن، إلى عرض تفاصيل آلية، بما في ذلك الصورة المصغرة والعنوان. TikTok يدعم oEmbed (راجع https://developers.tiktok.com/doc/embed-videos لمعرفة التفاصيل)، أي يمكنك (يدويًا أو آليًا) تحويل رابط لفيديو https://www.tiktok.com/@scout2015/video/6718335390845095173 على TikTok إلى بيانات وصفية بتنسيق JSON حول ذلك الفيديو https://www.tiktok.com/oembed?url=https://www.tiktok.com/@scout2015/video/6718335390845095173، وبالتالي استرداد صورة مصغّرة لعرضها. وغالبًا ما يستخدم WordPress هذا لطلب oEmbed' معلومات المحتوى المضمن، على سبيل المثال. يمكنك استخدام هذه الأداة آليًا لإظهار "واجهة" يبدو تفاعليًا وتحوّل إلى تضمين فيديو تفاعلي أو إدراج رابط يؤدي إليه عندما يختار المستخدم النقر عليه.

عند تضمين النصوص البرمجية للإحصاءات

تم تصميم "إحصاءات Google" لجمع المعلومات عن المستخدمين حتى يمكن تحليلها: وهذا هو الغرض منها. تُعد أنظمة التحليلات في الأساس خدمات لجمع البيانات عن حالات الوصول والمستخدمين وعرضها على خادم تابع لجهة خارجية مثل "إحصاءات Google" لتيسير الوصول موضع التنفيذ. هناك أيضًا أنظمة تحليلات مُستضافة ذاتيًا مثل https://matomo.org/، على الرغم من أنّ هذا الإجراء يتطلب المزيد من الجهد مقارنةً باستخدام حل تابع لجهة خارجية من أجل ذلك. يساعدك تشغيل مثل هذا النظام على بنيتك الأساسية الخاصة في تقليل جمع البيانات، لأنها لا تترك نظامك البيئي الخاص. من ناحية أخرى، إدارة تلك البيانات وإزالتها ووضع سياسات لها مسئوليتك. يتعلق معظم القلق بشأن تتبُّع إجراءات المستخدم على مواقع إلكترونية بإجراءات البحث بشكل خفي أو بشكل سرّي أو أثر جانبي لاستخدام خدمة لا تحتاج إلى جمع بيانات على الإطلاق. يتصف برنامج التحليلات بشكل علني مصمم لجمع البيانات لإعلام مالكي المواقع الإلكترونية بمستخدميهم.

تاريخيًا، كان هناك نهج لجمع كل البيانات المتاحة حول كل شيء، مثل شبكة صيد عملاقة، ثم تحليلها لاحقًا بحثًا عن أنماط مثيرة للاهتمام. وقد تسببت هذه العقلية، في جزء كبير، في الشعور بعدم الارتياح والانزعاج. حول جمع البيانات التي تمت مناقشتها في الجزء الأول من هذه الدورة. الآن، تقوم العديد من المواقع أولاً بتحديد الأسئلة التي يجب طرحها ثم جمع بيانات محددة ومحدودة للإجابة عن هذه الأسئلة.

إذا استخدم موقعك الإلكتروني ومواقع إلكترونية أخرى خدمة تابعة لجهة خارجية، وكانت هذه الخدمات تعمل من قِبلك من خلال تضمين JavaScript في موقعك الإلكتروني، وتضبط هذه الملفات ملفات تعريف الارتباط لكل مستخدم، لذا من المهم التفكير في إمكانية التعرّف على المواقع الإلكترونية بطريقة غير مرغوب فيها. أي تتبُّع المستخدمين على المواقع الإلكترونية قد لا يفعل البعض ذلك، لكن موقف حماية الخصوصية هنا هو افتراض أن فإن مثل هذه الخدمة التابعة لجهة خارجية تُجري حاليًا ميزة تتبُّع الأداء على مواقع إلكترونية متعددة ما لم يكن لديك سبب وجيه للتفكير أو معرفة خلاف ذلك. وهذا ليس سببًا في حد ذاته لتجنب مثل هذه الخدمات، ولكنه شيء يجب مراعاته عند تقييم المفاضلات من استخدامها.

كانت المُفاضلة في الإحصاءات هي الخيار الوحيد الذي يمكن استخدامه من عدمه، أي جمع كل البيانات واختراق الخصوصية مقابل الحصول على موافقة. للحصول على الأفكار والتخطيط، أو التخلي عن الأفكار تمامًا. ومع ذلك، لم يعد الأمر كذلك، وغالبًا ما الأرض الوسطى بين هذين الطرفين. تحقَّق من مقدِّم خدمة الإحصاءات لمعرفة خيارات الضبط التي يجب ضبطها. البيانات التي يتم جمعها وتقليل كمية ومدتها. بما أن لديك السجلات من التدقيق الفني كما هو موضح سابقًا، يمكنك إعادة إجراء الأقسام ذات الصلة بعملية التدقيق هذه للتأكد من أن تغيير هذه الإعدادات إلى تقليل كمية البيانات التي يتم جمعها. إذا كنت تريد إجراء عملية النقل هذه على موقع إلكتروني حالي، قد يمنحك ذلك بعض المقاييس القابلة للقياس التي يمكن الكتابة عنها للمستخدمين. على سبيل المثال، يتوفّر في "إحصاءات Google" عدد من عمليات التفعيل (وبالتالي يتم إيقافها تلقائيًا). ميزات الخصوصية التي قد يكون العديد منها مفيدًا للالتزام بقوانين حماية البيانات المحلية. بعض الخيارات التي يجب مراعاتها عند إعداد Google تتضمّن "إحصاءات Google" ضبط فترة الاحتفاظ بالبيانات التي يتم جمعها (المشرف > معلومات التتبّع > الاحتفاظ بالبيانات) على فترة أقل من فترة الاحتفاظ بالبيانات التلقائية التي تبلغ 26 شهرًا. وتفعيل بعض الحلول الأكثر تقنية، مثل إخفاء هوية عناوين IP الجزئية (راجِع https://support.google.com/analytics/answer/9019185 للحصول على مزيد من التفاصيل).

استخدام جهات خارجية بطريقة تحافظ على الخصوصية

حتى الآن، ناقشنا كيفية حماية المستخدمين لديك من الجهات الخارجية أثناء مرحلة تصميم طلبك، مع تخطط لما سيفعله هذا التطبيق. كما أن اتخاذ قرار بعدم استخدام جهة خارجية معينة على الإطلاق يُعد جزءًا من هذا التخطيط، ويندرج تدقيق استخداماتك أيضًا ضمن هذه الفئة: يتعلق الأمر باتخاذ القرارات بشأن وضعك من الخصوصية. ومع ذلك، فإن هذه القرارات بطبيعتها ليست دقيقة للغاية؛ وليس اختيار الاستعانة بطرف ثالث معيّن أو عدم الاستناد إليه قرارًا دقيقًا. من المرجّح أنّك سترغب في استخدام عرض معيّن من طرف ثالث أو التخطيط لاستخدامه، ولكن والتخفيف من أي ميول تنتهك الخصوصية (سواء كانت متعمدة أو عرضية). هذه هي مهمة حماية المستخدمين في "وقت الإنشاء": إضافة وسائل وقاية لتقليل الضرر الذي لم تتوقعه. كل هذه عناوين HTTP جديدة يمكنك تقديمها عند عرض والتي ستلهم أو تصدر تعليمات إلى وكيل المستخدم باتخاذ أوضاع معينة تتعلق بالخصوصية أو الأمان.

سياسة المُحيل

الإجراءات الموصى بها

عليك ضبط سياسة على strict-origin-when-cross-origin أو noreferrer لمنع المواقع الإلكترونية الأخرى من تلقّي عنوان المُحيل. عند الربط بها أو عند تحميلها كموارد فرعية من خلال إحدى الصفحات:

index.html:
<meta name="referrer" content="strict-origin-when-cross-origin" />

أو من جهة الخادم، على سبيل المثال في Express:

const helmet = require('helmet');
app.use(helmet.referrerPolicy({policy: 'strict-origin-when-cross-origin'}));

وإذا لزم الأمر، يمكنك ضبط سياسة متسخة على عناصر أو طلبات محددة.

سبب حماية هذه الميزة لخصوصية المستخدم

يتم تلقائيًا تمرير كل طلب HTTP يرسله المتصفّح إلى عنوان Referer الذي يحتوي على عنوان URL للصفحة التي تبدأ الطلب. سواء كان رابطًا أو صورة مضمّنة أو نص برمجي قد يمثل هذا مشكلة خصوصية نظرًا لأن عناوين URL قد تحتوي على معلومات خاصة، كما أن عناوين URL هذه إتاحته للجهات الخارجية التي تؤدي إلى نقل هذه المعلومات الخاصة إليها. يستعرض موقع Web.dev بعض الأمثلة من عناوين URL التي تحتوي على بيانات خاصة، مع العلم أنّ المستخدم قد زار موقعك الإلكتروني من خلال https://social.example.com/user/me@example.com، ما يساعدك في معرفة هوية هذا المستخدم وهو تسرّب محدد. ولكن حتى عنوان URL الذي لا يكشف عن معلومات خاصة يظهر أن هذا المستخدم بعينه (الذي قد تعرفه، إذا سجّلوا الدخول) جاء إلى هنا من موقع آخر، وهذا يكشف أن هذا المستخدم قد زار ذلك الموقع الآخر. وهذا في حد ذاته يعرض المعلومات التي ربما ينبغي ألا تعرفها عن سجل تصفح المستخدم.

يتيح لك توفير عنوان Referrer-Policy (بالتهجئة الصحيحة) تغيير هذا العنوان، بحيث يتم تمرير جزء من عناوين URL المُحيلة أو عدم تمريرها مطلقًا. تسرد MDN التفاصيل الكاملة ولكن معظم المتصفّحات الآن يتم استخدام القيمة strict-origin-when-cross-origin المقترَحة تلقائيًا، ما يعني أنّه يتم تمرير عنوان URL المُحيل الآن إلى الموضع الثالث الأطراف كأصل فقط (https://web.dev بدلاً من https://web.dev/learn/privacy). تُعد هذه حماية خصوصية مفيدة بدون عليك فعل أي شيء. يمكنك تعزيز ذلك من خلال تحديد Referrer-Policy: same-origin لتجنُّب تمرير أي المُحيل على الإطلاق إلى جهات خارجية (أو Referrer-Policy: no-referrer لتجنب تمريرها إلى أي شخص بما في ذلك مصدرك). (هذا مثال رائع على التوازن بين الخصوصية والفائدة، فالإعداد الافتراضي الجديد هو الحفاظ على الخصوصية أكثر من ذي قبل، لكنها يقدّم معلومات عالية المستوى للجهات الخارجية التي تختارها، مثل مزوّد التحليلات الذي تتعامل معه).

من المفيد أيضًا تحديد هذا العنوان بشكل صريح لأنّه بذلك ستعرف بالضبط ماهية السياسة، بدلاً من الاعتماد على الإعدادات التلقائية للمتصفّح. إذا لم تتمكّن من ضبط العناوين، يمكنك ضبط سياسة المُحيل لصفحة HTML بأكملها باستخدام عنصر وصفي في <head>: <meta name="referrer" content="same-origin">؛ وإذا كنت مهتمًا بجهات خارجية معيّنة، يمكنك أيضًا ضبط referrerpolicy السمة في العناصر الفردية، مثل <script> أو <a> أو <iframe>: <script src="https://thirdparty.example.com/data.js" referrerpolicy="no-referrer">

Content-Security-Policy

يحدّد العنوان Content-Security-Policy، الذي يُشار إليه غالبًا باسم "CSP"، المكان الذي يمكن تحميل الموارد الخارجية منه. ويتم استخدام هذه الأداة بشكل أساسي لأغراض أمنية، إذ يتم منع هجمات البرمجة النصية على المواقع الإلكترونية وإدخال النصوص البرمجية، ولكن عند استخدامها. إلى جانب عمليات التدقيق المنتظمة، يمكنها أيضًا الحدّ من إمكانية تمرير البيانات إلى الجهات الخارجية التي اخترتها.

من المحتمل أن تكون تجربة المستخدم أقل من رائعة؛ إذا بدأ أحد النصوص البرمجية التابعة لجهة خارجية في تحميل تبعية من المصدر ليس في قائمتك، فسيتم حظر هذا الطلب، وسيفشل النص البرمجي، وقد يخفق تطبيقك معه (أو على الأقل تخفيضها إلى النسخة الاحتياطية التي تواجه مشكلة في JavaScript). يكون هذا مفيدًا عند تطبيق سياسة CSP للأمان، وهو هدفها الطبيعي: الحماية من مشاكل النصوص البرمجية على المواقع الإلكترونية المختلفة (وللقيام بذلك، يُرجى استخدام سياسة CSP صارمة). بعد معرفة جميع النصوص البرمجية المضمّنة التي تستخدمها صفحتك، يمكنك إنشاء قائمة بها أو حساب قيمة تجزئة أو إضافة قيمة عشوائية (يُسمّى "رقم غير مباشر") لكل منها، ثم أضِف قائمة علامات التجزئة إلى "سياسة أمان المحتوى" لديك. سيمنع هذا أي نص برمجي غير مدرَج في القائمة من التحميل. ويجب دمج هذه البيانات في عملية إنتاج الموقع الإلكتروني، إذ تحتاج النصوص البرمجية في صفحاتك. لتضمين nonce أو حساب التجزئة كجزء من التصميم. راجع المقالة عن متشددة Cp للحصول على جميع التفاصيل.

لحسن الحظ، تتيح المتصفحات استخدام عنوان ذي صلة، وهو Content-Security-Policy-Report-Only. إذا تم توفير هذا العنوان، يتم طلب لن يتم حظر تلك الإعلانات التي تنتهك السياسة المقدّمة، ولكن سيتم إرسال تقرير JSON إلى عنوان URL المقدَّم. قد يكون هذا العنوان تبدو كما يلي: Content-Security-Policy-Report-Only: script-src 3p.example.com; report-uri https://example.com/report/, وإذا حمَّل المتصفّح نصًا برمجيًا من أي مكان آخر غير 3p.example.com، سينجح هذا الطلب ولكن سيحصل التقرير إرسال هذه السمة إلى report-uri المُقدَّمة. عادةً ما يتم استخدام ذلك لتجربة السياسة قبل تنفيذها، ولكن من المفيد الفكرة هنا هي استخدام هذا كطريقة لإجراء "تدقيق مستمر". بالإضافة إلى تدقيقك المنتظم الموضح سابقًا، يمكنك تفعيل إعداد تقارير سياسة أمان المحتوى (CSP) لمعرفة ما إذا كانت هناك أي نطاقات غير متوقعة، مما قد يعني تحميل موارد الجهات الخارجية. والموارد الخارجية الخاصة بها والتي تحتاج إلى أخذها في الاعتبار وتقييمها. (قد يكون أيضًا دليلاً على أنّ بعض المواقع الإلكترونية عمليات استغلال النصوص البرمجية التي تخطت الحدود الأمنية بالطبع، ومن المهم أيضًا معرفتها!)

Content-Security-Policy هي واجهة برمجة تطبيقات معقّدة ومستندة إلى Fedly يمكن استخدامها. هذا أمر معروف، ولا يزال هناك عمل جارٍ لبناء "الجيل القادم" من سياسة أمان المحتوى (CSP) التي ستحقق نفس الأهداف ولكن ليس معقدًا للاستخدام.هذا ليس جاهزًا بعد، ولكن إذا كنت ترغب في معرفة ما سيتم (أو للمشاركة والمساعدة في تصميمه)، يُرجى الانتقال إلى https://github.com/WICG/csp-next للاطّلاع على التفاصيل.

الإجراءات الموصى بها

أضِف عنوان HTTP هذا إلى الصفحات المعروضة: Content-Security-Policy-Report-Only: default-src 'self'; report-uri https://a-url-you-control. عند نشر ملف JSON على عنوان URL هذا، خزِّنه. راجِع البيانات المخزَّنة للحصول على مجموعة من النطاقات التابعة لجهات خارجية التي يطلبها موقعك الإلكتروني عند زيارة مواقع إلكترونية أخرى. عدِّل عنوان Content-Security-Policy-Report-Only لإدراج النطاقات التي تتوقّعها، للاطّلاع على وقت تغيُّر هذه القائمة:

Content-Security-Policy-Report-Only: default-src 'self' https://expected1.example.com https://expected2.example.com ; report-uri https://a-url-you-control

السبب

يشكّل هذا الإجراء جزءًا من عملية التدقيق الفني التي تجريها بشكل مستمر. سيمنحك التدقيق الفني الأولي الذي أجريته قائمة بالجهات الخارجية التي يشارك موقعك الإلكتروني بيانات المستخدمين أو يشاركها معها. سيؤدي هذا العنوان بعد ذلك إلى الإبلاغ عن طلبات الصفحات الجهات الخارجية التي يتم التواصل معها حاليًا، ويمكنك تتبع التغييرات بمرور الوقت. لا ينبهك ذلك فحسب بالتغييرات التي تقدمها الجهات الخارجية الحالية ولكنها ستبلغ أيضًا عن الجهات الخارجية التي تمت إضافتها مؤخرًا والتي لم تتم إضافتها إلى عملية التدقيق الفني. من المهم تعديل العنوان لإيقاف الإبلاغ عن النطاقات التي تتوقعها، ولكن من المهم أيضًا تكرار الدليل تدقيق فني من حين لآخر (لأنّ الأسلوب Content-Security-Policy لا يضع علامة على البيانات التي يتم تمريرها، فقط أنه تم تقديم الطلب).

يُرجى العِلم أنّه لا حاجة إلى إضافته إلى الصفحات المعروضة في كل مرة أو في كل صفحة. تقليل عدد الردود التي تتلقاها الصفحات العنوان بحيث تتلقى عينة تمثيلية من التقارير التي لا تحتوي على كم كبير جدًا.

سياسة الأذونات

يتشابه عنوان Permissions-Policy (الذي تم تقديمه تحت الاسم Feature-Policy) في مفهومه مع Content-Security-Policy، ولكن يحظر الوصول إلى ميزات المتصفح الفعّالة. على سبيل المثال، يمكن أن نحظر استخدام معدات الجهاز مثل مقياس التسارع، الكاميرا أو أجهزة USB، أو لتقييد الميزات التي لا تعمل على الأجهزة مثل الإذن بالوصول إلى وضع ملء الشاشة أو استخدام XMLHTTPRequest المتزامن. ويمكن تطبيق هذه القيود على صفحة المستوى الأعلى (لتجنب محاولة استخدام هذه الميزات النصوص البرمجية التي تم تحميلها) أو الصفحات ذات الإطارات الفرعية المحمَّلة في إطار iframe. وهذا القيد على استخدام واجهة برمجة التطبيقات لا يتعلّق ببصمة الإصبع للمتصفّح، بل يتعلق بمنع الجهات الخارجية من تنفيذ إجراءات تطفلية (مثل استخدام واجهات برمجة التطبيقات الفعالة والنوافذ المنبثقة ونوافذ الأذونات وما إلى ذلك). يتم تعريف ذلك من خلال "نموذج تهديد الخصوصية المستهدَف" على أنّه "تسلّل".

يتم تحديد عنوان Permissions-Policy كقائمة بأزواج (الميزة والأصول المسموح بها)، وبالتالي:

Permissions-Policy: geolocation=(self "https://example.com"), camera=(), fullscreen=*

يسمح هذا المثال لهذه الصفحة ("self") و<iframe> من المصدر example.com باستخدام واجهات برمجة تطبيقات navigator.geolocation. من JavaScript؛ تسمح لهذه الصفحة وجميع الإطارات الفرعية باستخدام واجهة برمجة التطبيقات بملء الشاشة، ولا تسمح لأي صفحة، بما في ذلك هذه الصفحة، بدءًا من استخدام الكاميرا لقراءة معلومات الفيديو. يمكنك الاطّلاع على المزيد من التفاصيل وقائمة بالأمثلة المحتمَلة هنا.

إنّ قائمة الميزات التي يعالجها العنوان "سياسة الأذونات" كبيرة وقد تكون غير ثابتة. والقائمة حاليًا هي على https://github.com/w3c/webappsec-permissions-policy/blob/main/features.md.

الإجراءات الموصى بها

المتصفّحات المتوافقة مع Permissions-Policy لا تسمح تلقائيًا بالميزات الفعّالة في الإطارات الفرعية، وعليك اتّخاذ إجراء لتفعيلها. هذه الطريقة خاصة بشكل تلقائي. وإذا وجدت أن الإطارات الفرعية على موقعك تتطلب هذه الأذونات، يمكنك إضافتها على نحو انتقائي. ومع ذلك، لا تتوفر أي سياسة أذونات مطبَّقة على الصفحة الرئيسية بشكلٍ تلقائي، وبالتالي النصوص البرمجية (بما في ذلك النصوص البرمجية التابعة لجهات خارجية) التي تكون التي تم تحميلها من خلال الصفحة الرئيسية، لا يتم منعهم من محاولة استخدام هذه الميزات. ولهذا السبب، من المفيد تطبيق سياسة Permissions-Policy إلى جميع الصفحات تلقائيًا، ثم أعِد إضافة الميزات التي تتطلّبها صفحاتك تدريجيًا.

تشمل الأمثلة على الميزات الفعّالة التي تؤثّر في "Permissions-Policy" طلب الموقع الجغرافي للمستخدم وللوصول إلى أدوات الاستشعار (بما في ذلك: مقياس التسارع والجيروسكوب ومقياس المغناطيسية)، والإذن للانتقال إلى وضع ملء الشاشة، وطلب الوصول إلى الكاميرا والميكروفون لدى المستخدم. تم إدراج القائمة الكاملة للميزات (المتغيرة) أعلاه.

للأسف، لحظر جميع الميزات بشكل تلقائي ثم إعادة السماح بها بشكل انتقائي، يجب إدراج جميع الميزات في العنوان، والتي قد تبدو غير أنيقة إلى حد ما. ومع ذلك، يمكنك البدء باستخدام عنوان Permissions-Policy هذا. permissionspolicy.com/ أداة إنشاء يمكن النقر عليها بسهولة لإنشاء مثل هذا العنوان: يمكن استخدامها لإنشاء عنوان يوقف جميع الميزات في ما يلي:

Permissions-Policy: accelerometer=(), ambient-light-sensor=(), autoplay=(), battery=(), camera=(), cross-origin-isolated=(),
display-capture=(), document-domain=(), encrypted-media=(), execution-while-not-rendered=(), execution-while-out-of-viewport=(),
fullscreen=(), geolocation=(), gyroscope=(), keyboard-map=(), magnetometer=(), microphone=(), midi=(), navigation-override=(),
payment=(), picture-in-picture=(), publickey-credentials-get=(), screen-wake-lock=(), sync-xhr=(), usb=(), web-share=(), xr-spatial-tracking=()

فهم ميزات الخصوصية المضمَّنة في متصفّحات الويب

بالإضافة إلى "وقت البناء" و"وقت التصميم" إلا أن هناك أيضًا إجراءات حماية للخصوصية تحدث في "وقت التشغيل": أي حماية الخصوصية الميزات التي تم تنفيذها في المتصفحات نفسها لحماية المستخدمين. هذه ليست ميزات يمكنك التحكم فيها مباشرةً أو الاستفادة منها كموقع مطوّري البرامج، أي ميزات المنتجات، لكنها ميزات يجب أن تكون على دراية بها، لأن مواقعك الإلكترونية قد تتأثر بقرارات المنتجات هذه. في المتصفحات. في ما يلي مثال على الطريقة التي قد تؤثر بها إجراءات حماية المتصفح هذه في موقعك الإلكتروني، في حال استخدام JavaScript من جهة العميل وتنتظر لتحميل تبعية جهة خارجية قبل مواصلة إعداد الصفحة، ولا يتم مطلقًا تحميل هذه الاعتمادية التابعة لجهة خارجية، وعندئذٍ ينبغي إعداد وقد لا تكتمل هذه المعلومات مطلقًا، وبالتالي يتم عرض صفحة نصف محمّلة للمستخدم.

وهي تتضمّن ميزة "منع التتبُّع الذكي" في Safari. (ومحرك WebKit الأساسي)، والحماية المحسَّنة من التتبّع في Firefox (ومحركه، Gecko). كل ذلك يجعل من الصعب على الجهات الخارجية إنشاء ملفات شخصية تفصيلية للمستخدمين.

تتغير أساليب المتصفح في ما يتعلق بميزات الخصوصية باستمرار، ومن المهم أن تبقى على اطلاع بكل جديد؛ القائمة التالية من إجراءات الحماية صحيحة في وقت الكتابة. قد تطبّق المتصفّحات أيضًا إجراءات حماية أخرى. فإن هذه القوائم ليست شاملة. الاطّلاع على الوحدة المتعلّقة بأفضل الممارسات للتعرّف على طرق لمتابعة التغييرات هنا، والتأكّد من اختبار إصدارات المتصفّح القادمة لمعرفة التغييرات التي قد تؤثر في مشاريعك. يُرجى العلم أنّ أوضاع التصفّح المتخفي/التصفّح بخصوصية تامة تنفّذ أحيانًا إعدادات مختلفة عن الإعدادات التلقائية للمتصفّح (قد يتم حظر ملفات تعريف الارتباط التابعة لجهات خارجية). افتراضيًا في هذه الأوضاع، على سبيل المثال). لذلك، قد لا يعكس الاختبار في وضع التصفح المتخفي دائمًا تجربة التصفح النموذجية لمعظم المستخدمين إذا لا يستخدمون التصفح الخاص. وتجدر الإشارة أيضًا إلى أنّ حظر ملفات تعريف الارتباط في مواقف مختلفة قد يعني أنّ حلول التخزين الأخرى، مثل window.localStorage، قد تعني محظورة أيضًا، ليس فقط ملفات تعريف الارتباط.

Chrome

  • سيتم حظر ملفات تعريف الارتباط التابعة لجهات خارجية في المستقبل. اعتبارًا من هذه الكتابة، لن يتم حظرها تلقائيًا. (ولكن يمكن للمستخدم تفعيل هذا الخيار): https://support.google.com/chrome/answer/95647 التفاصيل.
  • ميزات الخصوصية في Chrome، ولا سيما الميزات في Chrome التي تتصل بخدمات Google والخدمات التابعة لجهات خارجية، على privacysandbox.com/.

Edge

  • لا يتم حظر ملفات تعريف الارتباط التابعة لجهات خارجية تلقائيًا (ولكن يمكن للمستخدم تفعيلها).
  • أقسام ميزات منع التتبّع في Edge يتم تلقائيًا حظر أجهزة التتبّع من المواقع الإلكترونية التي لم تتم زيارتها وأجهزة التتبُّع الضارّة المعروفة.

Firefox

للاطّلاع على بعض المعلومات الإضافية حول ما قد يكون محظورًا وللمساعدة في تصحيح الأخطاء، انقر على رمز الدرع في شريط العناوين أو انتقِل إلى about:protections في متصفّح Firefox (على الكمبيوتر المكتبي).

Safari

  • ويتم بشكل تلقائي حظر ملفات تعريف الارتباط التابعة لجهات خارجية.
  • كجزء من ميزة المنع الذكي من التتبُّع يقلل Safari من المُحيل الذي يتم تمريره إلى الصفحات الأخرى ليكون موقعًا عالي المستوى بدلاً من صفحة محددة: (https://something.example.com، بدلاً من https://something.example.com/this/specific/page).
  • يتم حذف بيانات localStorage في المتصفِّح بعد سبعة أيام.

(يلخّص https://webkit.org/blog/10218/full-third-party-cookie-blocking-and-more/ هذه الميزات.)

للاطّلاع على معلومات حول ما قد يتم حظره والمساعدة في تصحيح الأخطاء، فعِّل "وضع تصحيح الأخطاء لمنع التتبُّع الذكي". في متصفح Safari قائمة المطوّرين (على سطح المكتب). (اطّلِع على https://webkit.org/blog/9521/intelligent-tracking-prevention-2-3/ للحصول على مزيد من التفاصيل).

عروض واجهة برمجة التطبيقات

لماذا نحتاج إلى واجهات برمجة تطبيقات جديدة؟

على الرغم من أنّ الميزات والسياسات الجديدة للحفاظ على الخصوصية في منتجات المتصفّح تساعد في الحفاظ على خصوصية المستخدم، فإنّها تصاحبها أيضًا تحديات. يمكن استخدام العديد من تقنيات الويب لإجراء التتبع عبر المواقع، على الرغم من تصميمها واستخدامها لأغراض أخرى. على سبيل المثال: تعتمد العديد من أنظمة اتحاد الهوية التي نستخدمها يوميًا على ملفات تعريف الارتباط التابعة لجهات خارجية. العديد من الحلول الإعلانية التي يستخدمها الناشرون التي تعتمد عليها حاليًا لتحقيق الأرباح تعتمد على ملفات تعريف الارتباط التابعة لجهة خارجية تعتمد العديد من حلول اكتشاف الاحتيال على البصمات الرقمية. المزايا يحدث في حالات الاستخدام هذه عندما تختفي ملفات تعريف الارتباط التابعة لجهة خارجية والبصمات الرقمية؟

سيكون من الصعب وعرضة للأخطاء على المتصفّحات التفريق بين حالات الاستخدام وتمييز الاستخدامات التي تنتهك الخصوصية بشكل موثوق من الآخرين. لهذا السبب، حظرت معظم المتصفّحات الرئيسية ملفات تعريف الارتباط والبصمات الرقمية التابعة لجهات خارجية أو كانت تنوي إجراء ذلك لحماية المستخدم. الخصوصية.

يجب اتّباع نهج جديد: مع الإيقاف التدريجي لملفات تعريف الارتباط التابعة لجهات خارجية والحدّ من تأثير البصمات الرقمية، يحتاج المطوّرون إلى واجهات برمجة تطبيقات مصمّمة لغرض محدّد. التي تلبي حالات الاستخدام (التي لم تعُد متاحة) ولكن مصمّمة بطريقة تحافظ على الخصوصية الهدف هو تصميم وبناء واجهات برمجة التطبيقات التي لا يمكن استخدامها للتتبُّع على مواقع إلكترونية متعددة. وعلى عكس ميزات المتصفّح الموضّحة في القسم السابق، تقدّم هذه التقنيات تطمح إلى أن تصبح واجهات برمجة تطبيقات عبر المتصفحات.

أمثلة على عروض واجهة برمجة التطبيقات

القائمة التالية ليست شاملة - فهي تمثل نكهة بعض ما تتم مناقشته.

في ما يلي أمثلة على اقتراحات واجهات برمجة التطبيقات التي تهدف إلى استبدال التكنولوجيات المستنِدة إلى ملفات تعريف الارتباط التابعة لجهات خارجية:

أمثلة على عروض واجهة برمجة التطبيقات التي ستحل محل التكنولوجيات القائمة على التتبع السلبي:

في ما يلي أمثلة على الاقتراحات الأخرى التي يمكن لواجهات برمجة التطبيقات الأخرى الاستفادة منها في المستقبل بدون استخدام ملفات تعريف الارتباط التابعة لجهة خارجية:

بالإضافة إلى ذلك، يبرز نوع آخر من اقتراحات واجهة برمجة التطبيقات لتجربته واستخدام إجراءات تتبُّع سرية خاصة بالمتصفّح إلى الآن. ومن الأمثلة على ذلك ميزانية الخصوصية. عبر هذه الأنواع المختلفة وحالات الاستخدام، وهي واجهات برمجة التطبيقات التي اقترحها Chrome في البداية ضمن المصطلح الشامل مبادرة حماية الخصوصية.

Global-Privacy-Control هو عنوان يهدف إلى توصيل المستخدم إلى موقع إلكتروني. ترغب في عدم مشاركة أي بيانات شخصية تم جمعها مع المواقع الأخرى. وهدفها مشابه لميزة "عدم التعقب" التي تم إيقافها نهائيًا.

حالة عروض واجهة برمجة التطبيقات

لم يتم نشر معظم اقتراحات واجهات برمجة التطبيقات هذه بعد، أو لم يتمّ نشرها إلا خلف العلامات أو في بيئات محدودة لإجراء التجارب.

إنّ مرحلة الحضانة العامة هذه مهمة: يجمع مورّدو المتصفّحات ومطوّروها مناقشات وخبرات حول ما إذا كانت واجهات برمجة التطبيقات هذه مفيدة وما إذا كانت تفعل ما تم تصميمها من أجله بالفعل. يستفيد مطوّرو البرامج ومورّدو المتصفّحات والجهات الفاعلة الأخرى في المنظومة المتكاملة من هذه المرحلة. للتكرار التحسيني لتصميم واجهة برمجة التطبيقات.

إن أفضل مكان للبقاء على اطلاع دائم بواجهات برمجة التطبيقات الجديدة التي يتم اقتراحها هو حاليًا قائمة اقتراحات مجموعة الخصوصية على GitHub.

هل تحتاج إلى استخدام واجهات برمجة التطبيقات هذه؟

إذا كان منتجك يعتمد بشكل مباشر على ملفات تعريف ارتباط أو أساليب تابعة لجهات خارجية، مثل البصمات الرقمية، عليك المشاركة في واجهات برمجة التطبيقات الجديدة هذه وتجربتها والمساهمة بخبراتك في المناقشات وتصميم واجهات برمجة التطبيقات. في جميع الحالات الأخرى، لا تحتاج بالضرورة إلى معرفة كل التفاصيل حول واجهات برمجة التطبيقات الجديدة هذه في وقت الكتابة، ولكن من الجيد أن تكون على دراية بما سيحدث.