البصمات الرقمية

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

قد يبدو التعريف الرسمي أكثر على النحو التالي: تقنية البصمة هي عملية استخدام ميزات واضحة وغير واضحة ومستمرة لإعدادات المستخدم لمحاولة تمييزه عن أكبر عدد ممكن من المستخدمين الآخرين.

سبب تأثير ميزة "البصمة الرقمية" في خصوصية المستخدم

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

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

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

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

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

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

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

طريقة عمل البصمات الرقمية

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

ملاحظة: البصمة الرقمية السلبية والنشطة

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

جانبًا: قياس قابلية البصمة

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

ما هي الإجراءات التي تتّخذها المتصفّحات لمنع تقنية "البصمة الرقمية"؟

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

عدم توافق مع واجهات برمجة تطبيقات فعّالة معيّنة

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

بوابة أذونات المستخدمين

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

إضافة عنصر المفاجأة

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

فرض ميزانية الخصوصية

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

استخدام بيئة اختبار واسعة

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

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

  • راجِع إحصاءات موقعك الإلكتروني وشرائح جمهورك لتحديد مجموعة المتصفّحات التي يجب أن تمنحها الأولوية عند الاختبار.
  • وهناك مجموعة جيدة من المتصفحات التي يمكن اختبارها هي Firefox وChrome وEdge وSafari على سطح المكتب وChrome وSamsung Internet على أجهزة Android. وSafari على iOS. يضمن لك ذلك إجراء الاختبار على جميع محركات العرض الرئيسية الثلاثة (Gecko في Firefox، وإصدارات مختلفة من Blink في Chrome وEdge وSamsung Internet، وWebkit في Safari)، وعلى كل من الأنظمة الأساسية للأجهزة الجوّالة وأجهزة الكمبيوتر المكتبي.
  • إذا كان من المحتمل أن يتم استخدام موقعك الإلكتروني أيضًا على أجهزة أقل شيوعًا، مثل الأجهزة اللوحية أو الساعات الذكية أو وحدات تحكّم الألعاب، عليك اختباره على هذه الأجهزة أيضًا. قد تكون بعض الأنظمة الأساسية للأجهزة متأخرة عن الأجهزة الجوّالة وأجهزة الكمبيوتر المكتبي في ما يتعلّق بتحديثات المتصفّح، ما يعني أنّ بعض واجهات برمجة التطبيقات قد تكون غير مُطبَّقة أو غير متاح في المتصفحات على تلك الأنظمة الأساسية.
  • اختبِر متصفّحًا واحدًا أو أكثر يطالب بخصوصية المستخدم كحافز. أدرِج الإصدارات التجريبية والإصدارات التجريبية القادمة من المتصفّحات الأكثر استخدامًا متى أمكن ذلك وإذا كانت متاحة لك: إصدار Safari التجريبي للتكنولوجيا، إصدار Canary من Chrome، والإصدار التجريبي من Firefox. تمنحك هذه الأدوات أفضل فرصة لتحديد الأعطال في واجهة برمجة التطبيقات والتغييرات التي تؤثّر في مواقعك الإلكترونية قبل أن تؤثّر تلك التغييرات في المستخدمين. وبالمثل، كن على دراية البيئات في الاعتبار مع الإشارة إلى أي تحليلات لديك. إذا كانت قاعدة المستخدمين تضمّ أعدادًا كبيرة من هواتف Android القديمة، احرص على تضمين هذه الهواتف في اختباراتك. لا يمتلك معظم الأشخاص أجهزة سريعة وأحدث الإصدارات التي يقوم بها فريق التطوير.
  • إجراء اختبار باستخدام ملف شخصي نظيف ووضع التصفّح المتخفي أو وضع التصفّح بخصوصية تامّة. فمن المحتمل أنك منحتَ بالفعل الأذونات المطلوبة في ملفك الشخصي. اختبِر ما يحدث في حال رفض الإذن للموقع الإلكتروني بعرض أي سؤال.
  • اختبِر صفحاتك بشكل صريح في وضع الحماية من التتبُّع بالاستناد إلى البصمة الرقمية في Firefox. سيؤدي ذلك إلى عرض مربّعات حوار الأذونات إذا كانت صفحتك تحاول إنشاء بصمة إصبع، أو ستُظهر بيانات مشوّهة لبعض واجهات برمجة التطبيقات. يساعدك ذلك في التأكّد مما إذا كانت الجهات الخارجية المضمّنة في خدمتك تستخدم بيانات يمكن بصمة الإصبع، أو ما إذا كانت خدمتك الخاصة تعتمد على بياناتك. في ذلك. يمكنك بعد ذلك التفكير فيما إذا كان التعجل المتعمد يجعل من الصعب القيام بما تحتاجه. ننصحك بإجراء والتصحيحات اللازمة للحصول على تلك البيانات من مصدر آخر، أو الاستغناء عنها، أو استخدام بيانات أقل دقة.
  • كما ناقشنا سابقًا في وحدة الجهات الخارجية، من المهم أيضًا تدقيق الاعتمادات التابعة لجهات خارجية لمعرفة ما إذا كانت تستخدم تقنيات وضع العلامات. يصعب اكتشاف البصمة السلبية ( مستحيلاً إذا قامت جهة خارجية بذلك على خادمها) لكن وضع البصمات الرقمية قد يضع علامة على بعض أساليب البصمات الرقمية، والبحث عن استخدامات navigator.userAgent أو إنشاء عناصر <canvas> بشكل غير متوقّع قد تكشف أيضًا عن بعض الطُرق التي تستحق المزيد من التدقيق. من الجدير أيضًا البحث عن استخدامات عبارة "المطابقة الإحصائية" في المواد التسويقية أو الفنية التي تصف جهة خارجية، لأنّ ذلك قد يشير أحيانًا إلى استخدام أساليب وضع البصمات الرقمية.

أدوات الاختبار عبر المتصفحات

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

ومع ذلك، بعد تدقيق الموقع الإلكتروني، يمكن أن يكون اختبار واجهات برمجة التطبيقات مبرمَجًا للتأكّد من عدم حدوث أي مشاكل في إصدارات المتصفّح الأحدث (أو في الإصدارات "التجريبية" و"الإصدارات العلنية" القادمة)، ويجب أن يكون ذلك بشكل أساسي كجزء من مجموعة الاختبار الحالية. عند استخدام أدوات الاختبار المبرمَج في ما يتعلّق بتغطية واجهة برمجة التطبيقات، يجب مراعاة أنّ معظم المتصفّحات تتيح مستوى معيّنًا من التحكّم في واجهات برمجة التطبيقات والميزات المتاحة. ينفّذ Chrome ذلك من خلال مفاتيح سطر الأوامر، كما يفعل Firefox، وسيتيح لك الوصول إلى هذه المفاتيح في عملية إعداد أداة الاختبار إجراء اختبارات معيّنة مع إيقاف واجهات برمجة التطبيقات أو تفعيلها. (اطّلِع على سبيل المثال على مكوّن browser-launch الإضافي في Cypress ومعلمة launch.args في puppeteer للتعرّف على طرق لإضافة علامات المتصفّح عند التشغيل).

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

في مثال آخر، منذ بداية الويب، كانت المتصفّحات ترسل وصفًا عن نفسها مع كل طلب في عنوان HTTP User-Agent. على مدار فترة مماثلة تقريبًا، كان الناس ينصحون مطوّري الويب بعدم استخدام محتوى عنوان وكيل المستخدم لعرض محتوى مختلف للمتصفحات المختلفة، وعلى مدار هذه الفترة، كان مطوّرو الويب يفعلون ذلك على أي حال، مع قدر معيّن من التبرير في بعض الحالات (ولكن ليس كلها). ونظرًا لأن المتصفحات لا تريد أن يتم استبعادها للحصول على تجربة دون المستوى الأمثل من قبل مواقع الويب، ينتج عن ذلك كل متصفح يتظاهر بأنه كل متصفح آخر، وتبدو سلسلة وكيل المستخدم على النحو التالي:

Mozilla/5.0 (Linux; Android 6.0.1; SGP771 Build/32.2.A.0.253; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/52.0.2743.98 Safari/537.36.

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

للتوضيح، لن يتمّ إيقاف البيانات في وكيل المستخدم نهائيًا، ولكنّها ستتوفّر بدقة أقلّ، أو قد تكون غير دقيقة في بعض الأحيان لأنّه قد يتمّ تسجيل رقم قديم ولكنّه ثابت. على سبيل المثال، يتم استخدام أحرف كبيرة بالكامل في Firefox وSafari وChrome رقم إصدار نظام التشغيل macOS الذي تم الإبلاغ عنه إلى عشرة أرقام (يُرجى الاطّلاع على تحديث بشأن تقليل سلسلة وكيل المستخدم لمزيد من المناقشة هنا). تتوفّر التفاصيل الدقيقة حول الطريقة التي يخطّط بها Chrome لتقليل البيانات في سلسلة وكيل المستخدم على مقالة تقليل وكيل المستخدم، ولكن باختصار، يمكنك توقّع أن يتضمّن رقم إصدار المتصفّح الذي يتم الإبلاغ عنه الإصدار الرئيسي فقط (لذلك سيبدو رقم الإصدار مثل 123.0.0.0، حتى إذا كان إصدار المتصفّح هو 123.10.45.108)، ولن يتضمّن رقم إصدار نظام التشغيل أي تفاصيل، وسيتم تجميده على أحد الخيارات القليلة التي لا تتغيّر. وبالتالي، فإنّ الإصدار 123.45.67.89 من Chrome الذي يعمل على نظام التشغيل imaginnary "Windows 20" سيُظهر رقم الإصدار على النحو التالي:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36

ولا تزال المعلومات الأساسية التي تحتاجها (إصدار المتصفح) متاحة، وهو الإصدار Chrome 123 على نظام التشغيل Windows. لكن الشركة الفرعية المعلومات (بنية الشريحة، وإصدار Windows، وإصدار Safari الذي يحاكيه، وإصدار المتصفح الثانوي) لن تكون متاحة بعد إيقاف الميزة.

قارِن ذلك بـ "الحالي" وكيل مستخدم Chrome على نظام أساسي مختلف:

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36،

ويمكن ملاحظة أنّ الاختلاف الوحيد هو رقم إصدار Chrome (104) ومعرّف النظام الأساسي.

وبالمثل، تعرِض سلسلة وكيل المستخدم في Safari نظامًا أساسيًا ورقم إصدار Safari، كما تعرِض أيضًا إصدار نظام التشغيل على iOS، ولكن يتم تجميد كل البيانات الأخرى. لذا، فإن الإصدار 1234.5.67 من Safari الذي يعمل بنظام التشغيل macOS 20 وهمي قد يعرض وكيل المستخدم على النحو التالي:

Mozilla/5.0 (Macintosh; **Intel Mac OS X 10_20_0**) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15،

وفي نظام التشغيل iOS 20 الخيالي، قد يكون:

Mozilla/5.0 (iPhone; CPU **iPhone OS 20_0** like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/**20.0 Mobile/15E148 Safari/605.1.15**.

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

كانت التغييرات التي طرأت على وكيل المستخدم المبلّغ عنه موضع جدل شديد. https://github.com/WICG/ua-client-hints#use-cases summarises بعض الحجج وأسباب التغيير، ويقدم روان ميروود مجموعة شرائح ببعض الاستراتيجيات للابتعاد عن استخدام وكيل المستخدِم للتمييز، في سياق اقتراح تلميحات برامج UA للحصول على مزيد من الشرح.

التلاعب بالبيانات

يشير مصطلح "الدمج" إلى الممارسات الأمنية، حيث يتم استدعاء واجهات برمجة التطبيقات باستخدام قيم غير متوقعة، وذلك على أمل أن يتم التعامل معها. القيم غير المتوقعة بشكل سيئ وقد تعرض مشكلة أمنية. ويجب أن يكون مطوّرو الويب على دراية بالبرمجة النصية على المواقع الإلكترونية (XSS). والذي يتضمن إضافة نص برمجي ضار إلى الصفحة، غالبًا ما يرجع ذلك إلى عدم إفلات الصفحة بشكل صحيح من نص HTML المُدخل (لذا فأنت تجري طلب بحث تحتوي على النص <script>). سيعرف مطوّرو الخلفية حقن لغة الاستعلامات البنيوية، حيث تؤدي طلبات البحث في قاعدة البيانات التي لا تتحقّق بشكل صحيح من إدخال المستخدم إلى مشاكل في الأمان (كما هو موضّح بشكل ملحوظ في xkcd باستخدام Little Bobby Tables). يُستخدَم اختبار الأخطاء بشكلٍ أكثر ملاءمةً في المحاولات المبرمَجة لتقديم العديد من المدخلات المختلفة غير الصالحة أو غير المتوقّعة إلى واجهة برمجة التطبيقات والتحقّق من النتائج بحثًا عن أي تسرُّبات أمنية أو تعطُّلات أو أي عمليات معالجة سيئة أخرى. هذه كلها أمثلة على تقديم معلومات غير دقيقة عمدًا. هنا، رغم ذلك، يتم ذلك بشكل استباقي من خلال المتصفحات (عن طريق جعل وكيل المستخدم غير صحيح عمدًا)، لتشجيع المطوّرين على التوقف عن الاعتماد على هذه البيانات.

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

  • تحقَّق من قاعدة الرموز للتأكّد من عدم وجود أي نوع من الاعتماد على سلسلة وكيل المستخدم (من المرجّح أن يعثر البحث عن navigator.userAgent على معظم مواضع الورود). في الرمز من جهة العميل، ومن المرجح أن يبحث رمز الخلفية عن User-Agent كرأس)، بما في ذلك والتبعيات لديك.
  • إذا عثرت على استخدامات في رمزك البرمجي، حدِّد ما يبحث عنه الرمز البرمجي، وابحث عن طريقة أخرى لإجراء هذا التفريق (أو ابحث عن عنصر بديل يعتمد عليه الرمز البرمجي، أو استخدِم العنصر الأساسي من خلال إرسال المشاكل أو التواصل مع الفريق المسؤول عنه للحصول على آخر المعلومات). أحيانًا وعلى الرغم من أهمية تميّز المتصفح للتغلب على الأخطاء، إلا أن وكيل المستخدم لن يتمكن من تنفيذ ذلك على نحو متزايد بعد تجميده.
  • قد تكون آمنًا. إذا كنت تستخدم فقط القيم الأساسية للعلامة التجارية والإصدار الرئيسي والنظام الأساسي، فستكون هذه متاحة وأن تكون صحيحة في سلسلة وكيل المستخدم.
  • يصف MDN طرقًا جيدة لتجنب الاعتماد على سلسلة وكيل المستخدم ("browser sniffing")، وأهمها هو رصد الميزات
  • إذا كنت تعتمد على سلسلة وكيل المستخدم بطريقة ما (حتى عند استخدام القيم الأساسية القليلة التي لا تزال مفيدة)، من الجيد إجراء الاختبار باستخدام وكلاء المستخدمين القادمين الذين سيتم تضمينهم في إصدارات المتصفّحات الجديدة. من الممكن اختباره باستخدام متصفح قادم الإصدارات نفسها عن طريق إصدارات تجريبية أو معاينة التكنولوجيا، ولكن من الممكن أيضًا تعيين سلسلة وكيل مستخدم مخصصة اختبار الفرضية. يمكنك إلغاء سلسلة وكيل المستخدم في Chrome أو Edge، Firefox Safari عند إجراء التطوير المحلي للتحقق من كيفية تعامل الرمز مع القيم المختلفة لوكيل المستخدم التي قد تتلقاها من المستخدمين.

حقول معلومات العميل

من بين المقترحات الرئيسية لتقديم هذه المعلومات استخدام أداة User-Agent Client Hints. على الرغم من أنّ ذلك غير متوافق مع جميع المتصفحات. وستمرر المتصفحات المتوافقة ثلاثة رؤوس: Sec-CH-UA، الذي يمنح علامة تجارية للمتصفّح ورقم إصدار Sec-CH-UA-Mobile، التي تشير إلى ما إذا كان الطلب صادرًا من جهاز جوّال وSec-CH-UA-Platform، والتي تسمي نظام التشغيل. (إنّ تحليل هذه العناوين ليس سهلاً كما يبدو لأنّها عناوين منظَّمة بدلاً من سلاسل بسيطة، ويفرض ذلك المتصفّحات التي ترسل قيمًا "مخادعة"، والتي سيتم التعامل معها بشكل غير صحيح في حال عدم تحليلها بشكل صحيح. وهي، كما ذكرنا سابقًا، هناك مثال على "اختبار التحقق من هوية المعلِن" يتم تنفيذه بشكل استباقي من خلال المتصفّح. على المطوّر الذي يستخدم هذه البيانات التعامل معها بشكل صحيح لأنّه تم تصميم البيانات بحيث يؤدي التحليل غير الصحيح أو البطيء إلى ظهور نتائج سيئة، مثل عرض علامات تجارية لا توجد أو سلاسل لا يتم إغلاقها بشكل صحيح). ولحسن الحظ، يتم توفير هذه البيانات أيضًا من خلال المتصفح لـ JavaScript بشكل مباشر navigator.userAgentData، والذي قد يظهر في متصفّح داعم على النحو التالي:

{
  "brands": [
    {
    "brand": " Not A;Brand",
    "version": "99"
    },
    {
    "brand": "Chromium",
    "version": "96"
    },
    {
    "brand": "Google Chrome",
    "version": "96"
    }
  ],
  "mobile": false
}