説明:ユーザーがスクリプトコードが実行され、その中に埋め込まれたページを、参照するとき、悪意のあるユーザーの目的を達成するために、悪意のある攻撃者は、スクリプトコードを使用して、悪質なWebページを挿入します。
トリガー:ターゲット・ユーザーのブラウザレベルで先のサイトで発生
共通:公共掲示板、公に表示されるテキスト
試験方法:
(1)クッキー弾性ブロック
<スクリプト>警告(document.cookie)</スクリプト>
(2)クッキーは、攻撃者のフォルダに書き込まれます
< HTML > < タイトル> XX </ タイトル> < 身体> <%テストファイル= Server.MapPathの(「code.txt 」)// 最初のルートディレクトリにコードを作成し、サイトのルートを取っているパスを構築テストファイルの保存に.txtのパス MSG = リクエスト(「MSG 」)// オーバー提出MSG変数、つまり、クッキーの値を取得 SETのFSを= Server.CreateObjectに(「Scripting.FileSystemObjectオブジェクト」)//は、fsのターゲット作成 SET thisFileというの=fs.OpenTextFile(テストファイル、8 、真、0 ) thisfile.WriteLine("" &MSG &"" )// code.txtクッキーに書き込まれ、取得した画像 thisfile.close()// 閉じる SETのFS = 何もない% > </ ボディ> </ HTML >
アプローチ:
フィルタ技術を用い、すべてのパラメータは、処理プログラムによってフィルタリングされる:1特殊文字[&それ;,&gt;で、&QUOT]でエスケープ。2.直接処分さに敏感なHTMLスクリプトを含みます。
一般的なXSSフィルタリング:
1.htmlspecialchars()関数の
前にこれらのシンボルのシニフィアンをバック追加する単一引用符「」、二重引用符「」、/バックスラッシュ\エスケープをスラッシュ、すなわち可能\。
ただし、デフォルトのエンコード機能二重引用符、スラッシュ(/ \)は
使用すると、単一引用符をエンコードしたい場合は、パラメータを追加する必要がある
の2.strip_tags機能
角括弧はコーディング
3.addslashes
シングルと二重引用符の転送「が先行する\
4.addslashes()関数の
定義済みの文字'「\ NULLの
4つの文字の前に機能プラス\
私は、侵入テスト中に見ている5.キーシンボル<>「」「」()、などなどである基本的に
これらのエンティティ符号化シンボル
や記号を直接濾別
後、キーワードまたは警告スクリプトのsrc IMG等のフィルタリング
あなたはXSSの完全なステートメントを構築することはできません、入力文字列の長さを制限し、フロントエンドのJSチェックを通過しますいくつかの時間を
制限するように変更することができ、対応するコードを見つけ、しますが、ページ要素を見
たり、正当なを入力します文字列、その後、brupsuitキャプチャの変更を使用