Несколько компаний-гигантов, а именно Facebook и Netflix, решили запретить пользователям выполнять команды JavaScript в консоли.
Первоначально это было начато Facebook, чтобы предотвратить распространение сообщений злонамеренными пользователями (рассылку большого количества спама всем пользователям Facebook) путем выполнения определенных команд через консоль JavaScript.
Конечно, это вызывает много критики, но до того, как я вмешался, код, который они использовали, выглядел так:
Скопируйте код кода следующим образом:
// Похоже, Netflix следует примеру Facebook [https://news.ycombinator.com/item?id=7222129].
(функция() {
пытаться {
вар $_console$$ = консоль;
Object.defineProperty(окно, "консоль", {
получить: функция() {
если ($_console$$._commandLineAPI)
выдать «Извините, в целях безопасности пользователей на этом сайте отключена функция консольного скрипта»;
вернуть $_console$$
},
set: function($val$$) {
$_console$$ = $val$$
}
})
} поймать ($игнорировать$$) {
}
})();
Хотя я человек тихий, на самом деле я считаю, что такая практика законна. С их точки зрения, если временное отключение консоли помогает предотвратить проблему, то это необходимо сделать.
Но в долгосрочной перспективе это не очень хорошая идея; цель может заключаться в том, чтобы просто заблокировать пользователей, которые на них полагаются.
В любом случае, если вы хотите запретить консоли выполнять скрипт, этот код выглядит хорошо, и так оно и есть.