Mehrere große Unternehmen, darunter Facebook und Netflix, haben beschlossen, Benutzern die Ausführung von JavaScript-Befehlen in der Konsole zu verbieten.
Dies wurde ursprünglich von Facebook ins Leben gerufen, um böswillige Benutzer daran zu hindern, Nachrichten zu verbreiten (und eine große Menge Spam an alle Facebook-Benutzer zu senden), indem sie bestimmte Befehle über die JavaScript-Konsole ausführen.
Natürlich gibt es viel Aufsehen, aber bevor ich mich darauf einließ, sah der Code, den sie verwendeten, so aus:
Kopieren Sie den Codecode wie folgt:
// Es scheint, als würde Netflix dem Beispiel von Facebook folgen [https://news.ycombinator.com/item?id=7222129].
(Funktion() {
versuchen {
var $_console$$ = Konsole;
Object.defineProperty(window, "console", {
get: function() {
if ($_console$$._commandLineAPI)
throw „Aus Gründen der Benutzersicherheit wurde die Konsolenskriptfunktion auf dieser Website leider deaktiviert“;
gib $_console$$ zurück
},
set: function($val$$) {
$_console$$ = $val$$
}
})
} Catch ($ignore$$) {
}
})();
Obwohl ich ein ruhiger Mensch bin, halte ich diese Praxis tatsächlich für legal. Aus ihrer Sicht muss die vorübergehende Deaktivierung der Konsole durchgeführt werden, wenn sie dazu beiträgt, ein Problem zu verhindern.
Aber auf lange Sicht ist das wirklich keine gute Idee; das Ziel könnte einfach darin bestehen, Benutzer zu blockieren, die sich darauf verlassen.
Wenn Sie jedoch verhindern möchten, dass die Konsole ein Skript ausführt, sieht dieser Code gut aus, und das ist er auch.