ブラウザ開発者ツールを無効にする Facebook の独創的な方法
最近のソーシャルメディア詐欺を受けて、Facebook は高度な防御メカニズムを実装して、ユーザーを悪意のある活動から守ります。この保護の一環として、プラットフォームはブラウザーに統合された開発者ツールを無効にし、攻撃者による開発者ツールの悪用を防ぎます。
あるスタック オーバーフローの投稿では、クライアント側で開発者ツールをブロックすることは不可能であると主張しました。しかし、Facebook は革新的なソリューションでこの主張を覆しました。
Facebook が開発者ツールを無効にした方法
Facebook のアプローチの鍵は、Chrome が次のラッパー関数に依存していることにあります。 console._commandLineAPI。このラッパーはすべてのコンソール コードを囲み、潜在的な傍受ポイントを提供します。
Facebook エンジニアは、アクセス時にエラーをスローするように console._commandLineAPI を再定義しました。これにより、開発者ツール コンソールでコードを実行しようとする試みが効果的にブロックされます。次のコードは、この回避策を示しています。
Object.defineProperty(console, '_commandLineAPI', { get : function() { throw 'Nooo!' } })
その単純さにもかかわらず、この解決策は絶対確実というわけではありません。ただし、これは Facebook の防御戦略の基本的な構成要素として機能します。
ブラウザ拡張機能とユーザーサイド JavaScript
Facebook は、クライアント側のブロック技術に固有の制限があることを認識しています。 。彼らの主な目標は、ユーザーをだまして悪意のある JavaScript をコンソールに貼り付ける特定のソーシャル エンジニアリング攻撃を阻止することです。
Chrome の対応
驚くべき事態の展開として、Chrome はチームは、ユーザー側の JavaScript からコンソールを無効にする機能をバグとして分類し、問題を解決しました。このアクションにより、Facebook の最初の手法は無効になりました。
追加の保護
Chrome の修正によって導入された脆弱性を認識し、Facebook はユーザーを self-xss 攻撃から守るために追加の保護を実装しました。これらの措置により、悪意のあるアクティビティに対するプラットフォームの回復力がさらに強化されます。
以上がクライアント側の制限にもかかわらず、Facebook はどのようにしてブラウザ開発者ツールを無効にしたのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。