JavaScript 参照ファイル スクリプトが Web ページに挿入されるのを防ぐことができるかどうかはわかりませんが、ページに登録されている JavaScript でない限り、挿入された JavaScript 参照ファイル スクリプト内で関数を実行できないようにしているサイトを見てきました。たとえば、10 個の異なる JQuery スクリプト (異なるバージョン) を異なる接頭辞で Google Mail に挿入することができましたが、特定の JQuery コマンドを実行できないようにする優れた機能を果たします。たとえば、 $jquery171('html').html() (ページのソースを表示するだけ) のように、データを取得する (データを設定しない) だけです。Google Mail の場合と同様に、自分の Web ページで他のスクリプトが実行されないようにするにはどうすればよいですか? 誰もこれを以前にやったことがありますか?
1 に答える
あなたが話している脆弱性はクロスサイトスクリプティングとして知られています。略してXSS。OWASP のトップ 10 プロジェクトでは、Web アプリケーション開発者として知っておくべき他の一般的な攻撃についても紹介します。
独自のコードを XSS から保護するには、ユーザーが送信したデータを提供されている出力 HTML ページに出力しないでください。ユーザーデータを印刷する HTML 構造の場所に基づいて、コンテキストに依存する方法でデータをエンコードする必要があります。HTTP ヘッダー、URL、Cookie、フォーム POST データ、およびデータベースなどの「外部」システムからのデータを含む、独自のプログラムから取得されたものではないすべてのデータは、信頼できないものとして扱う必要があることに注意してください。
XSS 防止チート シートを参照して、HTML 出力の出力エンコーディングの基本原則をよく理解してください。
悪意があると思うかどうかにかかわらず、Google に対して行っていることは違法です。XSS に対するコードの脆弱性を確認するために、[部分的な] 侵入テストを効果的に実行しています。GMail はこの種のことをあまり気にしないかもしれませんが (もちろん、悪意のあるスパム HTML メールに対処しなければなりませんが)、他の Web サイトの所有者は間違いなくそうします。あなたが説明したことよりもはるかに少ないことをしたとして、人々は米国で逮捕され起訴されました.
テストする独自のサイトを開発します。他人のセキュリティをテストする権限はありません。WebGoatやGruyereなどのプロジェクトを検討して、法的に攻撃が許可されている環境を提供することを検討してください。