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