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.
À l'origine, cela a été lancé par Facebook pour empêcher les utilisateurs malveillants de diffuser des messages en exécutant des commandes spécifiques via la console JavaScript (envoyant une grande quantité de spam à tous les utilisateurs de Facebook).
Bien sûr, cela suscite beaucoup de critiques, mais avant de m'impliquer, le code qu'ils ont utilisé ressemblait à ceci :
// Il semble que Netflix soit le seul à suivre l'exemple de Facebook [https://news.ycombinator.com/item?id=7222129
(function() {
try {
var $_console$$ = console;
Object.defineProperty(window, "console", {
get: function() {
if ($_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"
return $_console$$
},
set : function($val$$) {
$_console$$ = $val$$
}
})
} catch ($ignore$$) {
}
} )();
Bien que je sois une personne à la voix douce, je pense en fait 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 pourrait simplement être de bloquer les utilisateurs cibles qui comptent sur eux.
Quoi qu'il en soit, si vous souhaitez empêcher la console d'exécuter des scripts, ce code semble bien fonctionner, et c'est le cas.