Plusieurs sociétés géantes, notamment Facebook et Netflix, ont décidé d'interdire aux utilisateurs d'exécuter des commandes JavaScript dans la console.
Cela a été initialement lancé par Facebook pour empêcher les utilisateurs malveillants de diffuser des messages (en envoyant une grande quantité de spam à tous les utilisateurs de Facebook) en exécutant des commandes spécifiques via la console JavaScript.
Bien sûr, cela suscite beaucoup de critiques, mais avant de m'impliquer, le code qu'ils utilisaient ressemblait à ceci :
Copiez le code comme suit :
// Il semble que Netflix suive l'exemple de Facebook [https://news.ycombinator.com/item?id=7222129].
(fonction() {
essayer {
var $_console$$ = console;
Object.defineProperty(fenêtre, "console", {
obtenir : fonction() {
si ($_console$$._commandLineAPI)
throw "Désolé, pour la sécurité des utilisateurs, la fonction de script de console a été désactivée sur ce site Web" ;
retourner $_console$$
},
ensemble : fonction ($val$$) {
$_console$$ = $val$$
}
})
} attraper ($ignorer$$) {
}
})();
Même si je suis une personne douce, je pense en réalité que cette pratique est légale. De leur point de vue, si la désactivation temporaire de la console permet d’éviter un problème, alors cela doit être fait.
Mais à long terme, ce n’est vraiment pas une bonne idée ; le but est peut-être simplement de bloquer les utilisateurs qui comptent sur eux.
Quoi qu'il en soit, si vous souhaitez empêcher la console d'exécuter un script, ce code semble bon, et c'est le cas.