1. ホーム
  2. javascript

[解決済み] Facebookがブラウザに統合されたDeveloper Toolsを無効にする方法を教えてください。

2022-03-16 03:19:06

質問

最近の詐欺事件のせいで、開発者ツールがスパムの投稿に悪用されたり、アカウントのハッキングに使われたりしているようですね。Facebookは開発者ツールをブロックしており、私はコンソールを使うことすらできません。

どうやったんだろう? あるStack Overflowの投稿では、それは不可能であると主張されています。 しかし、Facebookはそれが間違っていることを証明しました。

Facebookにアクセスして開発者ツールを開き、コンソールに1文字入力するだけで、この警告がポップアップします。何を入れても実行されないのです。

どうしてこんなことが可能なのでしょうか?

コンソールのオートコンプリートもブロックされた。

解決方法は?

私はFacebookのセキュリティエンジニアで、これは私の責任です。私たちは、ユーザーを騙して(悪意のある)JavaScriptコードをブラウザーコンソールに貼り付ける攻撃を減速させることができるかどうかを確認するために、一部のユーザーに対してこれをテストしています。

はっきりさせておきたいのは、クライアントサイドでハッカーをブロックしようとするのは バッドアイディア 一般に から守るためのものです。 特定のソーシャルエンジニアリング攻撃 .

テストグループに入ってしまい、迷惑している方、ごめんなさい。 昔のオプトアウトページ(現在は ヘルプページ を停止させるのに十分な怖さを持ちながら、できるだけシンプルにします。 いくつか の被害者が出てしまう。

実際のコードは、かなり似ています joeldixon66のリンク しかし、私たちのものは理由もなく少し複雑になっています。

Chrome はコンソールコードをすべて

with ((console && console._commandLineAPI) || {}) {
  <code goes here>
}

...そこで、このサイトでは console._commandLineAPI を投げるようにします。

Object.defineProperty(console, '_commandLineAPI',
   { get : function() { throw 'Nooo!' } })

これは 十分とは言えないが(試してみてください) が、これが が主なトリックです。


エピローグ Chromeチームは、ユーザーサイドのJSからコンソールを倒すのはバグだと判断し を修正しました。 そのため、このテクニックは無効となった。その後、このテクニックを無効にするために、追加の保護機能が セルフエクススからユーザーを保護する .