مرحبا يا هبر! أقدم لكم ترجمة المقال Julie Marchant Fix or Kill Automated Installed JavaScript؟
يشير مقال ريتشارد ستولمن ، The Javascript Trap ، إلى أن الأشخاص يشغلون برامج خاصة يتم تثبيتها تلقائيًا بصمت في متصفحاتهم كل يوم. في الواقع ، قلل من أهمية المشكلة. لا يقتصر الأمر على أن معظم المستخدمين يشغلون برامج خاصة على أساس يومي فقط من خلال تصفح الويب فحسب ، بل يشغلون عشرات أو حتى مئات من هذه البرامج يوميًا. فخ جافا سكريبت حقيقي للغاية وغزير الإنتاج. من المعتقد أن العمل مع المواقع سينتهك بدون ملحقات HTML غير القياسية ، والتي عادة ما تكون مملوكة ، والتي لا توفرها متصفحات الويب حتى الفرصة الواضحة لتعطيل JavaScript. يقال أن تعطيل جافا سكريبت لن يؤدي إلا إلى الارتباك.
من الواضح أننا بحاجة إلى حل هذه المشكلة. ومع ذلك ، من خلال التركيز على ما إذا كانت البرامج النصية "تافهة" أو مجانية ، فإن السيد Stallman يخطئ نقطة مهمة: التثبيت التلقائي الصامت للبرنامج نفسه هو المشكلة الرئيسية. حقيقة أن البرمجيات في معظمها ملكية ، ليس سوى تأثير جانبي.
ردا على مقال السيد Stallman ، تم تطوير امتداد لمتصفح Firefox ومشتقاته يسمى LibreJS. يقوم هذا الملحق تلقائيًا بتحليل كل JavaScript في الصفحة لتحديد ما إذا كان تافهًا أم مجانيًا ، وإذا كان أحد هذه الشروط صحيحًا ، يتم تنفيذ البرامج النصية ، وإلا يتم حظرها. أنا أقدر مشروع LibreJS وما يحاول القيام به. لكن أعتقد أن LibreJS هو في الأساس النهج الخاطئ لحل المشكلة.
فشل LibreJS في الوقت الحالي ، لأنه يتطلب تنسيقًا غير معروف في أي مكان ، ولكن من الناحية النظرية يمكن حله في المستقبل ، لذلك لنفترض أن كل شيء على ما يرام. لنفترض أن LibreJS ناجح جدًا لدرجة أنه يجبر معظم الإنترنت على إصدار نصوص برخص مجانية ووصف التراخيص بتنسيق يفهمه LibreJS.
يبدو الأمر رائعًا للوهلة الأولى ، ولكن يستنتج من ذلك أن البرنامج لا يزال مثبتًا بهدوء في متصفحاتنا كل يوم. والفرق الوحيد هو أن LibreJS تعتبر البرامج مجانية.
لا أريد التقليل من أهمية ضمان أن جميع البرامج مجانية. ومع ذلك ، عندما يتم تثبيت أي برنامج تلقائيًا على أجهزة الكمبيوتر الخاصة بنا بناءً على طلب طرف ثالث ، فإن ذلك يجعل من المستحيل ممارسة الحرية. من المفترض أنك تريد تنفيذ جميع برامج جافا سكريبت هذه ، التي يمكن أن تجعل بسهولة مئات البرامج النصية الجديدة كل يوم ، على جهاز الكمبيوتر الخاص بك ، عادةً قبل أن تتمكن حتى من التحقق من التعليمات البرمجية المصدر الخاصة بها.
الأسوأ من ذلك ، أن نظام التثبيت JavaScript غير المراقب يقوم فقط بتثبيت البرنامج مؤقتًا للتنفيذ مرة واحدة فقط. في الواقع ، عندما يقوم الخادم بتحديث JavaScript الذي يتم إرساله إلى متصفحات الويب ، يتم نشر هذا التحديث للمستخدمين. حتى إذا كان النص مجانيًا ، يبدو أنه يحتوي على باب خلفي مدمج.
هذا يشبه إلى حد كبير حالة التواء ، عندما يكون لديك نظريًا حرية التحكم في ما يفعله البرنامج ، ولكن لا يمكنك القيام بذلك عمليًا بسبب الظروف. لا يكفي أن يكون لديك سيطرة نظرية. هناك حاجة أيضا للسيطرة الفعلية. في حالة جافا سكريبت ، فإن عدم التحكم هذا ليس نتيجة نية خبيثة ، بل هو نتيجة الافتراض المهمل لمتصفحات الويب التي يريد المستخدم تنفيذها لكل نص برمجي يمكن أن تقدمه صفحة الويب. ليس هذا هو الحال بالضرورة. سيكون الأمر كما لو كان Windows مثبتًا على جهاز الكمبيوتر الخاص بي في كل مرة أقرأ فيها مقالة توصي باستخدام Windows أو إذا تحدثت المدونة عن مدى جودة Chrome ، فقد يتسبب في تثبيت Chrome تلقائيًا على نظامي.
لذا ماذا يمكننا أن نفعل؟ أنا أعرف حلين ممكنين.
الحل 1: إصلاح JavaScript
الحل الأول والأكثر وضوحًا هو تغيير سلوك متصفحات الويب فيما يتعلق بطلبات برامج JavaScript. أقترح أنه لكي يتم قبول النظام ، يجب استيفاء جميع الشروط التالية:
- يجب على المتصفح تثبيت شفرة JavaScript باستمرار وفقط عندما يسمح المستخدم بذلك صراحةً بأي شكل من الأشكال.
- يجب أن يوفر المتصفح للمستخدم فرصة تثبيت أي برنامج نصي عشوائي ، وليس فقط البرنامج النصي الذي تطلبه صفحة الويب.
- يجب ألا يقوم المتصفح بتحديث رمز JavaScript تلقائيًا ، إلا إذا أشار المستخدم إلى أنه يجب تحديثه ، ويجب أن يكون المستخدم قادرًا على اختيار مصدر هذه التحديثات.
ستلاحظ أن اكتشاف الترخيص التلقائي غير مدرج في أي من هذه النقاط. فكيف يحصل المستخدم على JavaScript مجاني فقط دون التحقق يدويًا من كل ملف مصدر؟ الحل بسيط للغاية: تمامًا مثل أي برنامج مجاني آخر. أنا أثق بمطوري Trisquel لتضمين البرامج المجانية فقط بدون ميزات ضارة في المستودع. بالمناسبة ، يمكن لمطوري Trisquel حماية المستخدمين من البرامج الضارة ، سواء كانت ملكية أو لا ؛ LibreJS - لا يمكن. وبالمثل ، يمكننا إنشاء والحفاظ على مستودع لرمز جافا سكريبت مجاني.
لكي يعمل هذا ، يجب أن تعمل برامج JavaScript المثبتة أيضًا على جميع صفحات الويب التي تطلبها ، وليس فقط على صفحة واحدة. بالنسبة لرمز جافا سكريبت المثبت بالفعل ، يمكن تحديد إمكانية استخدامه من خلال الحصول على تجزئة الإصدارات المصغرة من النصوص البرمجية المثبتة ، ثم تلقي تجزئة النصوص المطلوبة بعد تصغيرها بنفس الطريقة. إذا لم تتطابق التجزئات ، يمكنك التحقق من أسماء ملفات النصوص البرمجية لمطابقة كاملة أو جزئية ، وقد يُسأل المستخدم عما إذا كان يجب استخدام هذه النصوص البرمجية. سيكون مفيدًا أيضًا لبعض أنواع قواعد البيانات في متصفح المستخدم ، وتحديد المواقع التي يمكن استخدام بعض البرامج النصية عليها.
أعتقد أن هذا النهج سيتطلب جهدًا كبيرًا وربما هذا هو السبب في أن مطور LibreJS لم يحاول القيام بذلك. لا يساعد على أن تحقيق الموثوقية يتضمن العمل المستمر لمواكبة تغير الصفحات.
الحل 2. اقتل جافا سكريبت
عندما اقترحت شيئًا مثل الحل 1 في القائمة البريدية bug-gnuzilla ، أشارت إحدى الإجابات إلى وجود حل أبسط بكثير: بدلاً من محاولة إصلاح JavaScript ، يمكننا تعطيل تنفيذ JavaScript تمامًا في متصفحاتنا (بعبارة أخرى قتل جافا سكريبت). بالطبع ، أعني تثبيت JavaScript تلقائيًا . على سبيل المثال ، لا حرج في استخدام JavaScript لتطوير امتدادات Firefox. يمكن أيضًا تصميم البرامج النصية والإضافات المخصصة لتحل محل شفرة جافا سكريبت الهامة.
ومع ذلك ، هذا الحل لا يخلو من المشاكل. على وجه الخصوص ، يتطلب هذا تغييرًا اجتماعيًا هائلاً ، وإن كان أقل مما تحاول LibreJS القيام به. يمكن أن تساعد المتصفحات التي تزيل دعم جافا سكريبت في هذا الصدد ، ولكن هناك مشكلة في الدجاج والبيضة بمعنى أن المتصفحات التي لا تدعم جافا سكريبت ستعتبر أقل ، في حين أن العديد من مواقع الويب تتطلب برامج نصية للعمل.
قد تكون إحدى الخطوات الوسيطة لتحقيق ذلك هي متصفح يدعم جافا سكريبت ، ولكن يجب إيقاف تشغيل جافا سكريبت افتراضيًا ، ومنح المستخدم طريقة سهلة لتمكين جافا سكريبت مؤقتًا في صفحة واحدة. وبالتالي ، سيكتسب المستخدم الخبرة دون استخدام جافا سكريبت ، ولكن سيظل قادرًا على استخدام جافا سكريبت للصفحات التي يحتاج إليها ، دون أي إزعاج يجعل المتصفح غير مريح. سيكون هناك حتى آثار جانبية ممتعة للمستخدمين - سيصبح عملهم على الإنترنت أكثر سلاسة. تحتوي العديد من مواقع الويب على نصوص برمجية منتفخة ضخمة يمكنك تجنبها تمامًا بمجرد تعطيل JavaScript.
الخلاصة
لكل من هذه الأساليب نقاط القوة والضعف.
يمكن أن يعطي الحل الأول نتائج جيدة على الفور لمواقع مثل Diaspora و Reddit ، والتي تتطلب كود JavaScript ، ولكنها مجانية في الغالب. ربما لن يؤدي هذا إلى تغييرات كبيرة على الإنترنت ، ولكن هذا ليس ضروريًا للعمل. ومع ذلك ، سيتطلب ذلك بعض العمل لتكوين سلوك المتصفح بشكل صحيح فيما يتعلق بـ JavaScript ، وسيكون هناك المزيد من العمل للحفاظ على مستودع لبرامج JavaScript المجانية.
الحل الثاني يشبه إلى حد كبير ما تحاول LibreJS القيام به حاليًا ، وإن كان على نطاق أصغر بكثير. يعتمد الأمر على التغيير في الإنترنت: إقناع معظم مطوري الويب بالتوقف عن استخدام كود JavaScript. إذا نجح هذا الحل ، فقد يكون التأثير مثيرًا للإعجاب. من ناحية أخرى ، يمكن أن يفشل هذا الحل بسهولة ، أو يؤدي ببساطة إلى طريقة ناشئة أخرى لتثبيت البرامج تلقائيًا في متصفحات المستخدمين.
لست متأكدًا من أيهما أفضل ، لكن LibreJS ليس حلًا جيدًا ولا حلًا جيدًا ، ولا حتى خطوة في الاتجاه الصحيح. طالما أن المتصفح المجاني الذي يصحح جافا سكريبت متاحًا بشكل صحيح ، يجب على أي شخص يريد الحرية في الحوسبة إيقاف جميع إجراءات جافا سكريبت المعتادة في متصفحاته ، حتى إذا كانت الشفرة مجانية ، ويجب على مطوري الويب الذين يحترمون حرية مستخدميهم إلغاء جميع جافا سكريبت المطلوبة على مواقعهم.