Facebook はどのようにしてブラウザに統合された開発者ツールを無効にするのでしょうか? 質問する

Facebook はどのようにしてブラウザに統合された開発者ツールを無効にするのでしょうか? 質問する

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

ここに画像の説明を入力してください

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

Facebook にアクセスして開発者ツールを開き、コンソールに 1 文字入力すると、この警告が表示されます。何を入力しても実行されません。

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

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

ここに画像の説明を入力してください

ベストアンサー1

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

明確にしておくと、クライアント側でハッカーをブロックしようとするのは悪いアイデア一般的には、これは特定のソーシャルエンジニアリング攻撃

もしあなたがテストグループに入ってしまい、これにイライラしているなら、申し訳ありません。私は古いオプトアウトページ(今はヘルプページ)をできるだけシンプルにしながらも、少なくとも一部の犠牲者を止めるのに十分なほど恐ろしいものにします。

実際のコードは@joeldixon66 のリンク; 私たちのものは、特に理由もなく、もう少し複雑です。

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

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

...そこで、サイトはconsole._commandLineAPI次のように再定義します:

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

これはまだ十分ではありません(試してみてください!)しかし、それが主なトリックです。


エピローグ: Chromeチームは、ユーザーサイドJSからコンソールを無効にするのはバグであると判断し、問題を修正しました、この技術は無効になりました。その後、追加の保護が追加されました自己XSSからユーザーを保護する

おすすめ記事