Facebook や Netflix などのいくつかの巨大企業は、ユーザーがコンソールで JavaScript コマンドを実行することを禁止することを決定しました。
これは元々、悪意のあるユーザーが JavaScript コンソールを通じて特定のコマンドを実行することによってメッセージを拡散する (すべての Facebook ユーザーに大量のスパムを送信する) ことを防ぐために Facebook によって開始されました。
もちろん、これには多くの非難が集まりますが、私が参加する前は、彼らが使用していたコードは次のようになっていました。
次のようにコードをコピーします。
// Netflix が Facebook の後を追っているようです [https://news.ycombinator.com/item?id=7222129]。
(関数() {
試す {
var $_console$$ = コンソール;
Object.defineProperty(window, "コンソール", {
取得: function() {
if ($_console$$._commandLineAPI)
throw "申し訳ありませんが、ユーザーの安全のため、この Web サイトではコンソール スクリプト機能が無効になっています。";
$_console$$ を返す
}、
セット: function($val$$) {
$_console$$ = $val$$
}
})
} キャッチ ($ignore$$) {
}
})();
私は物静かな性格ですが、実際にはこの行為は合法だと考えています。彼らの観点からすると、コンソールを一時的に無効にすることが問題の防止に役立つのであれば、そうする必要があります。
しかし、長期的には、これは実際には良い考えではありません。その目的は、単にそれらに依存するユーザーをブロックすることかもしれません。
とにかく、コンソールでスクリプトが実行されるのを防ぎたい場合、このコードは良さそうですし、実際その通りです。