Várias empresas gigantes, nomeadamente Facebook e Netflix, decidiram proibir os utilizadores de executar comandos JavaScript na consola.
Isso foi originalmente iniciado pelo Facebook para evitar que usuários mal-intencionados espalhassem mensagens (enviando uma grande quantidade de spam para todos os usuários do Facebook) executando comandos específicos por meio do console JavaScript.
É claro que isso recebe muitas críticas, mas antes de eu me envolver, o código que eles usavam era assim:
Copie o código do código da seguinte forma:
// Parece que a Netflix está seguindo o exemplo do Facebook [https://news.ycombinator.com/item?id=7222129].
(função() {
tentar {
var $_console$$ = console;
Object.defineProperty(janela, "console", {
obter: função() {
se ($_console$$._commandLineAPI)
throw "Desculpe, para segurança do usuário, a função de script do console foi desativada neste site";
retornar $_console$$
},
definir: função($val$$) {
$_console$$ = $val$$
}
})
} pegar ($ignorar$$) {
}
})();
Embora eu seja uma pessoa de fala mansa, na verdade acho que essa prática é legal. Do ponto de vista deles, se desabilitar temporariamente o console ajudar a evitar um problema, então isso deverá ser feito.
Mas, a longo prazo, esta não é realmente uma boa ideia; o objetivo pode ser simplesmente bloquear os usuários que dependem deles.
De qualquer forma, se você quiser evitar que o console execute um script, esse código parece bom, e é.