قررت العديد من الشركات العملاقة، وهي فيسبوك ونتفلكس، منع المستخدمين من تنفيذ أوامر JavaScript في وحدة التحكم.
بدأ هذا في الأصل بواسطة Facebook لمنع المستخدمين الضارين من نشر الرسائل (إرسال كمية كبيرة من البريد العشوائي إلى جميع مستخدمي Facebook) عن طريق تنفيذ أوامر محددة من خلال وحدة تحكم JavaScript.
بالطبع يثير هذا الكثير من الانتقادات، ولكن قبل أن أتدخل، كان الكود الذي استخدموه يبدو كما يلي:
انسخ رمز الكود كما يلي:
// يبدو أن Netflix تتبع خطى Facebook [https://news.ycombinator.com/item?id=7222129].
(وظيفة() {
يحاول {
var $_console$$ = console;
Object.defineProperty(نافذة، "وحدة التحكم"، {
الحصول على: وظيفة () {
إذا ($_console$$._commandLineAPI)
رمي "عذرًا، من أجل سلامة المستخدم، تم تعطيل وظيفة البرنامج النصي لوحدة التحكم على موقع الويب هذا"؛
إرجاع $_console$$
},
المجموعة: الوظيفة($val$$) {
$_console$$ = $val$$
}
})
} التقاط ($تجاهل$$) {
}
})();
على الرغم من أنني شخص لطيف الكلام، إلا أنني أعتقد في الواقع أن هذه الممارسة قانونية. من وجهة نظرهم، إذا كان تعطيل وحدة التحكم مؤقتًا يساعد في منع حدوث مشكلة، فيجب القيام بذلك.
ولكن على المدى الطويل، هذه ليست فكرة جيدة حقًا؛ فقد يكون الهدف ببساطة هو حظر المستخدمين الذين يعتمدون عليها.
على أي حال، إذا كنت تريد منع وحدة التحكم من تنفيذ برنامج نصي، فإن هذا الرمز يبدو جيدًا، وهو كذلك.