自動セキュリティ検査のためのシステムであって、格納されている命令を実行するよう構成されたプロセッサと、命令を格納する記憶装置であって、該記憶装置がプロセッサ実行可能コードを含み、該プロセッサ実行可能コードが前記プロセッサにより実行された際に、マクロを記録し、ウェブブラウザからのトラフィックをインターセプトする間に該記録したマクロを再生し、該マクロを再生する間にウェブリクエストをインターセプトし、該ウェブリクエストをアタックし、該ウェブリクエストをウェブサーバへ送信し、該ウェブリクエストに基づく該ウェブサーバからのレスポンスを受信し、該ウェブサーバの該レスポンスを処理して脆弱性を判定する、という各ステップを行うよう構成されている、自動セキュリティ検査のためのシステム。前記記憶装置がコンピュータ実行可能コードを含み、該コンピュータ実行可能コードが、前記プロセッサにより実行された際に、前記ウェブブラウザで前記レスポンス中のスクリプトを実行し、該スクリプトの実行中に実行されたアプリケーションコードにドキュメントオブジェクトモデルメソッドをフックし、前記アプリケーションコードの実行により示されるスクリプトの実行中にコールされた前記ドキュメントオブジェクトモデルメソッドに基づいて脆弱性を判定する、という各ステップを行うことにより、前記ウェブサーバのレスポンスを処理して脆弱性を判定するよう構成されている、請求項1に記載のシステム。前記記憶装置がコンピュータ実行可能コードを含み、該コンピュータ実行可能コードが、前記プロセッサにより実行された際に、前記ウェブブラウザとのユーザの対話を記録することによりマクロを記録するよう構成されている、請求項1に記載のシステム。前記記憶装置がコンピュータ実行可能コードを含み、該コンピュータ実行可能コードが、前記プロセッサにより実行された際に、前記マクロの再生中に前記ウェブリクエストをアタックするよう構成されている、請求項1に記載のシステム。前記記憶装置がコンピュータ実行可能コードを含み、該コンピュータ実行可能コードが、前記プロセッサにより実行された際に、ドキュメントオブジェクトモデルの要素を前記マクロ内に含め、該ドキュメントオブジェクトモデル内の他の要素に対する前記要素のロケーション、タグ名、要素ID、要素名、又はそれらの任意の組み合わせに基づいて該ドキュメントオブジェクトモデルが変更された後に該ドキュメントオブジェクトモデル内の要素を探し出す、という各ステップによりマクロを記録するよう構成されている、請求項1に記載のシステム。自動セキュリティ検査方法であって、マクロを記録し、プロキシサーバがウェブブラウザからのトラフィックをインターセプトする間に前記記録したマクロを再生し、該マクロを再生する間にウェブリクエストをインターセプトし、該ウェブリクエストをアタックし、該ウェブリクエストをウェブサーバへ送信し、該ウェブリクエストに基づく該ウェブサーバからのレスポンスを受信し、該ウェブサーバの該レスポンスを処理して脆弱性を判定する、という各ステップからなる、自動セキュリティ検査方法。前記ウェブサーバのレスポンスを処理して脆弱性を判定する前記ステップが、前記ウェブブラウザで前記レスポンス中のスクリプトを実行し、ドキュメントオブジェクトモデルメソッドをアプリケーションコードにフックし、該アプリケーションコードの実行により示されるスクリプトの実行中にコールされた前記ドキュメントオブジェクトモデルメソッドに基づいて脆弱性を判定する、という各ステップからなる、請求項6に記載の方法。前記ウェブリクエストをアタックする前記ステップが、該ウェブリクエストに悪意のあるコードをインジェクトするステップからなる、請求項6に記載の方法。前記マクロを記録する前記ステップが、記録するための要素を定義し、該要素が、ログアウト状態、ログイン状態、又は一組の質問及び回答を示すものである、請求項6に記載の方法。前記マクロを記録する前記ステップが、イベントハンドラを用いたウェブページの要素を記録するステップからなる、請求項6に記載の方法。前記ウェブリクエストが、該ウェブリクエストがインターセプトされる前に該ウェブリクエストのオリジナルの宛先である前記ウェブサーバに送信される、請求項6に記載の方法。前記ウェブリクエストをアタックする前記ステップが、脆弱性を構成するものに関する対応するルールを含む、請求項6に記載の方法。持続性コンピュータ読み取り可能媒体であって、マクロを記録し、ウェブブラウザからのトラフィックをインターセプトする間に前記記録したマクロを再生し、該マクロを再生する間にウェブリクエストをインターセプトし、該ウェブリクエストをアタックし、該ウェブリクエストをウェブサーバへ送信し、該ウェブリクエストに基づく該ウェブサーバからのレスポンスを受信し、該ウェブサーバの該レスポンスを処理して脆弱性を判定する、という各ステップの実行をプロセッサに指示するよう構成されたコードを含む、持続性コンピュータ読み取り可能媒体。前記ウェブブラウザで前記レスポンス中のスクリプトを実行し、該スクリプトの実行中に実行されたアプリケーションコードにドキュメントオブジェクトモデルメソッドをフックし、該アプリケーションコードの実行により示されるスクリプトの実行中にコールされた前記ドキュメントオブジェクトモデルメソッドに基づいて脆弱性を判定する、という各ステップを実行することにより、前記ウェブサーバの前記レスポンスを処理して脆弱性を判定するようプロセッサに指示するよう構成されたコードを含む、請求項13に記載の持続性コンピュータ読み取り可能媒体。ウェブリクエストに悪意のあるコードをインジェクトすることにより該ウェブリクエストをアタックするようプロセッサに指示するよう構成されたコードを含む、請求項13に記載の持続性コンピュータ読み取り可能媒体。以下では図面を参照して特定の例示的な実施形態について説明する。本技術の一実施形態は、ウェブブラウザとのユーザ対話を記録することにより自動的にウェブページのセキュリティの脆弱性を検出することが可能なものである。また、本技術の一実施形態は、ウェブブラウザ上で記録し再生することができるマクロを生成すること及び該マクロにより再生されるイベント内にアタックをインジェクトすることが可能なものである。該マクロの再生は、所与のウェブサイトの完全に自動化された脆弱性スキャン中に新たな脆弱性を発見するために使用することが可能である。更に、本技術の一実施形態は、ウェブページに自動的にログインし、及びウェブブラウザとのユーザ対話を含む記録済みのマクロの再生を用いて様々なウェブページの状態を維持することが可能である。新たなリンクを発見し、ウェブアプリケーションのアタックポイントを探し出し、アタックを行い、及び脆弱性を発見するために、該記録済みのマクロの再生中にウェブリクエストを行うことが可能である。図1は、一実施形態による自動セキュリティ検査のためのコンピュータにより実行される方法100を示すフローチャートである。ブロック102でマクロが記録される。本書で用いる場合、マクロとは、一連のアクション又は入力のソフトウェア記録であり、該アクション又は入力を繰り返すべく再生することが可能なものである。該マクロは、ウェブページの要素の操作、該要素の属性の変更、ドキュメントオブジェクトモデルDOMにおける該要素のロケーションの変化、及び該要素のあらゆる兄弟siblingsを含むことが可能である。該要素はまた、ウェブブラウザとのユーザ対話の結果として生じるイベントに基づくものとすることが可能である。結果的に、マクロは、ウェブブラウザとのユーザの対話を記録することが可能である。ユーザは、ウェブページへのログインやプロファイル情報の表示といったユーザにより選択されたものとして記録されるべき業務プロセスに対応する任意の態様でウェブブラウザと対話することが可能である。イベントヘッダを使用してマクロを記録することも可能である。ユーザはまた、ログイン状態又はログアウト状態を示す要素等を記録すべくウェブページの要素を選択することが可能である。例えば、ウェブページ上のサインインと記載されたボタンは、ログアウト状態を示すことが可能なものである。更に、ユーザは、マクロに含めると共に認証のためにウェブページにより提示される動的なセキュリティ質問で使用するための一組の質問及び回答を定義することができる。該動的なセキュリティ質問のロケーションを記録することも可能である。例えば、銀行のウェブサイトは、多層セキュリティSecurityindepthの一部として、あなたの猫のお気に入りのボールはといった一連の予め設定された質問に対する回答をユーザに促すことができる。かかる質問は、ユーザが該一組の質問を定義して前記マクロに含めることにより脆弱性スキャン中に克服することが可能である。本書で説明するように、ユーザがブラウザ内で所与のアクションを開始した際に、要素の属性該要素がDOM内に存在する場合及びDOMに関する他の関連情報該要素の兄弟及び該要素がフォームの一部であるか否かなどを記録することが可能である。このように各要素に関する情報を記録することにより、DOMのレイアウトが異なる場合であっても、該DOMに対する後続の変化で同一の要素を見いだすことが可能となる。一般に、DOMは、HTML及びXMLドキュメントのためのアプリケーションプログラミングインタフェイスである。DOMは、ウェブサイトのHTML及びXMLドキュメントの論理構造を定義することが可能であり、及びドキュメントがアクセスされ操作される態様を制御することが可能である。ウェブページのDOM構造は、Web20アプリケーションを用いてユーザ対話中に変化し得るものであり、これによりDOM内の要素が論理的又は構造的に変化する。DOM内の要素は、マクロが記録されている間に該DOMの構造が変換する場合にはスキャンエンジンを使用して見いだすことが可能である。最初に、スキャンエンジンは、タグ名、要素ID、及び要素名等の情報に基づいてDOM内の要素を探し出すことが可能である。DOMの要素をサーチするための最初のサーチが、該サーチした要素と同じDOM内のロケーションに同じタグ名を有する要素を探し出せなかった場合には、その正確なロケーションに基づいて又はDOM内の他の要素に対する該要素のロケーションに基づいて、記録された要素を探し出すことが可能である。このDOM内の要素を発見する際の柔軟性により、Web20アプリケーションとの対話時にDOMに対する動的な変化が発生する場合に脆弱性を発見することをが可能となる。ブロック104で、記録されたマクロが再生される。該マクロの再生は、正しいステップがキャプチャされたことを確認するために使用することが可能であり、該再生中に所望のブラウザ状態が達成される。該マクロは、最初に、状態を確立するため、並びに該マクロが訪問したURLUniformResourceLocatorsをクロールに入力するために、再生することが可能である。該クロールは次いで、以下で説明するようにアタックを実行することが可能な監査エンジンにアタックサーフェスを提供するために使用することが可能である。更に、該監査エンジンは、スキャンエンジンの一部とすることが可能である。最初のマクロ再生の後、後続のマクロ再生中に該マクロに記録されたログアウト状態を示す要素についてウェブページをチェックすることが可能である。かかる要素が見つからない場合には、該マクロ再生を中断して、実際の解析を実行することができるようにログイン状態を再確立するためにマクロを再生することが可能である。解析はログアウト状態では厳しく制限される可能性があり、ログアウト状態で再生が続いた場合には重要な脆弱性を発見できない可能性がある。ブロック106で、マクロ再生中に行われたウェブリクエストがプロキシサーバによりインターセプトされる。プロキシサーバは、ウェブブラウザ内でのマクロの再生中に該ウェブブラウザからのトラフィックをインターセプトするよう構成することが可能である。更に、プロキシサーバは、監査エンジンにウェブリクエストを提供することが可能である。ブロック108で、該ウェブリクエストがアタックされる。該アタックは、監査エンジンにより実行することが可能である。ウェブリクエストのアタックは、該リクエストに悪意のあるコードをインジェクトすることを含み、これにより、該ウェブリクエスト内でユーザが意図しない何らかの機能の利用を試行することが可能となる。更に、マクロの再生中に該ウェブリクエストをアタックすることが可能である。クロスサイトスクリプティングの場合、クロスサイトスクリプティングペイロードをウェブリクエスト中にインジェクトすることが可能である。ブロック110で、該ウェブリクエストがウェブサーバへ送信される。該ウェブサーバは、該ウェブリクエストがインターセプトされてプロキシサーバへ送信される前の該ウェブリクエストのオリジナルの宛先とすることが可能である。ブロック112で、該ウェブリクエストに基づくレスポンスがウェブサーバから受信される。ブロック114で、該ウェブサーバのレスポンスが処理されて脆弱性が判定される。実行された各アタック毎に、脆弱性を構成するものに関する対応するルールが存在する。典型的には、このルールは、監査エンジンによりレスポンステキストで実行することができる正規表現である。該ルールが満たされた場合、ウェブページに脆弱性が存在する。複雑な複数の監査エンジンは、レスポンスの処理が過去のアタックの成功に依存するものとなるようにかかる監査エンジンに関連する1つの状態を有することが可能である。図2は、一実施形態によるウェブサーバのレスポンスを処理して脆弱性を判定するコンピュータにより実行される方法200を示すプロセスフローチャートである。監査エンジンの代わりにブラウザがレスポンスを処理する際に脆弱性を露呈させることが可能である。ブロック202で、レスポンス中のスクリプトをウェブブラウザ内で実行することが可能である。ブロック204で、DOMメソッドが実行される際に実行することができるアプリケーションコードに幾つかのDOMメソッドをフックし又はリンクすることが可能である。この場合には、該レスポンスをブラウザへ渡して、該レスポンスのスクリプトの実行時にコールすることができるアプリケーションコードに幾つかのDOMメソッドをフックすることにより、脆弱性を検出することが可能である。ブロック206で、アプリケーションコードの実行により示されるように、スクリプトの実行時にコールされた特定のDOMメソッドに基づいて脆弱性を判定することが可能である。本技術は、クロスサイトスクリプティング脆弱性を検出するために使用することが可能である。例えば、ユーザが自身のプロファイル情報を編集し見ることを可能にするAjaxAsynchronousJavaScriptXMLドリブンのウェブサイトについて考察する。プロファイル情報の編集は、JavaScriptイベントハンドラを有する編集ボタンをユーザがクリックした際にトリガすることが可能である。編集後、保存ボタンは保存のためのAJAXリクエストをウェブサーバへ送ることが可能である。更に、表示ボタンをクリックしてこのプロファイル情報を表示させることが可能である。表示ボタンがクリックされた際に、該サーバからプロファイルデータを取り出すための第2のAJAXリクエストを送信するJavaScriptを実行することが可能であり、このデータをDOM要素へと変換してブラウザでレンダリングすることが可能である。編集ボタン、保存ボタン、及び表示ボタンの各々は、AJAXドリブンのページの要素とすることが可能である。JavaScriptイベントは、ボタンがクリックされた際、又はPOSTの前にユーザ名及びパスワード値を変更するJavaScriptが発生した際に、トリガすることが可能である。POSTは、リクエストの一部としてサーバへデータを送信するためフォームデータをサーバへ提示する場合などにクライアントにより使用されるウェブリクエストである。ランダムな名称を有する隠し形式の入力が各フォーム毎に生成される際にインプットサニタイゼーション入力の浄化が発生することが可能であり、サーバはウェブリクエストにおけるパラメータの存在をチェックする。一般に、インプットサニタイゼーションは、フォームデータ及びクッキーといったユーザ入力がウェブサーバへ送信される前に該ユーザ入力をクライアントサイドで評価することを含む。インプットサニタイゼーション技術は、クロスサイトリクエストフォージェリCSRFを防止するために使用することが可能であり、及び自動エンジンによるウェブリクエストの再生を困難にすることが可能である。同じ一連のリクエストの再生がユーザを認証するものとならないからである。更に、これらの複雑なアプリケーションをアタックするために、インジェクトされる各アタックSQLインジェクション又はクロスサイトスクリプティングなどに先立ってユーザの状態が分かっている必要がある。インプットサニタイゼーションなしでプロファイル情報がDOM要素へと変換される場合には、クロスサイトスクリプティング脆弱性が存在する可能性がある。このため、クロスサイトスクリプティング脆弱性は一般に、ユーザが見ているウェブページにアタッカーがクライアントサイドスクリプトをインジェクトすることを可能にするウェブアプリケーションで発見される。この脆弱性を検出するために、ユーザがブラウザと対話する際に発生するDOMイベントを、脆弱性が存在し得る条件を模倣するようウェブブラウザを使用して特定のシーケンスで反復することが可能である。該DOMイベントは、アタックのペイロードの実行を精確に検出すべく厳密に監視することが可能である。クロスサイトスクリプティング脆弱性に通じ得るクライアントサイドイベントを記録するために、ブロック102図1に示すように、現在レンダリングされているウェブページのDOM並びに該DOMのベースに対する変更イベントハンドラの両方についてイベントハンドラをフックすることにより、マクロを記録することが可能である。要素は一連のイベントを投げることが可能であり、このため特定の1つのイベントが投げられた際に必ず一連のイベントハンドラがコールされるように該一連のイベントハンドラを要素にフックすることが可能となります。イベントハンドラは、ウェブページとのユーザ対話がウェブブラウザ又はスキャンエンジンに対して検出された際に必ず通知を送信することが可能である。ウェブブラウザとのユーザ対話の結果として生じるイベントに基づく一連の要素を記録し次いで任意に再生してウェブブラウザとのユーザ対話をシミュレートすることが可能である。マクロは、セキュリティ評価要件を満たす質問及び回答、並びに再生セッションを成功裏に認証するためのその他情報を含むことが可能である。スキャンエンジンは、ブロック104図1に示すように、記録されたマクロを再生するようプログラムされたウェブブラウザのインスタンスを提示することが可能である。マクロの再生中にウェブブラウザがナビゲートする際に、スキャンエンジンを用いてDOMを操作して、記録中にユーザが対話した要素と同じ要素を操作することが可能である。例えば、保存要素、編集要素、表示要素、クリック要素、ナビゲート要素、値設定要素を、実際のユーザ対話の場合と全く同様に再生中に操作することが可能である。更に、クライアントサイドJavaScriptをユーザ対話の場合と全く同様に実行することが可能である。マクロの再生中にウェブブラウザからのトラフィックをインターセプトするようにプロキシサーバを構成することが可能であり、ブロック106図1に示すように、マクロの再生中にウェブリクエストをインターセプトすることが可能である。ブロック108図1に示すように、マクロの再生の進行中にプロキシサーバを用いてウェブリクエストをアタックすることが可能である。アタックのタイプに応じて、再生を停止させることが可能である。ブロック110112図1に示すように、ウェブサーバは、プロキシサーバから送信されたアタックされたウェブリクエストに応答する。この時点での挙動は、該アタックを処理する監査エンジンのタイプによって異なる。ブロック114図1に示すように、監査エンジンは、ウェブサーバレスポンスを処理して脆弱性が存在するか否かを判定することが可能である。マクロの再生は、それが完了するまで処理されて、脆弱性の指示について各々の新たなレスポンスが検査される。クロスサイトスクリプティング脆弱性が検出されると、ブロック202図2に示すように、ウェブブラウザは、アタックで送信されたスクリプトを実行する。このシナリオでは、該脆弱性は、クライアントサイドスクリプトで発生し、ウェブサーバへデータを送信することはできない。したがって、これらのウェブリクエストをアタックする場合には、ウェブブラウザのDOMの状態が重要である。上述のように、ウェブブラウザのDOMは、ウェブサイトのHTML及びXMLドキュメントの論理構造を定義し、及びドキュメントがアクセスされ操作される態様を制御することが可能なものである。ブロック204図2に示すように、ウェブブラウザのDOMにアプリケーションコードをフックすることが可能であり、該アプリケーションコードは、コールされたDOMメソッドの通知を提供することが可能である。例えば、DOMメソッドにリンクされるアプリケーションコードは、アタックで送信されたクロスサイトスクリプティングペイロードとすることが可能である。その結果として、ブロック206図2に示すように、脆弱性が存在する場合にコールされることが予想される特定のDOMメソッドをウェブブラウザがコールする場合に脆弱性を判定することが可能である。脆弱性の通知は、その発生時に生じさせることが可能である。その結果として、単なるトランスポート層アタックではアクセスすることができない脆弱性にアクセスすることが可能となる。図3は、本技術の一実施形態による自動セキュリティ検査を提供するシステムのブロック図である。該システムは包括的に符号300により示されている。当業者には理解されるように、図3に示す機能ブロック及び装置は、回路を含むハードウェア要素、有形のマシン読み取り可能媒体に格納されたコンピュータコードを含むソフトウェア要素、又はハードウェア要素及びソフトウェア要素の組み合わせから構成することが可能である。更に、該システム300の機能ブロック及び装置は、一実施形態として実施することができる機能ブロック及び装置のほんの一例に過ぎないものである。当業者であれば、特定の電子装置のための設計上の考慮事項に基づいて特定の機能ブロックを容易に定義することが可能である。該システム300は、ネットワーク304に接続された検査用コンピュータ302を含むことが可能である。図3に示すように、該検査用コンピュータ302は、バス308を介してディスプレイ310、1つ以上の入力装置314、及びプリンタ316等の出力装置へと接続することが可能な1つ以上のプロセッサ306を含むことが可能である。該入力装置314は、マウス又はタッチスクリーン等の装置を含むことが可能である。該プロセッサ306は、シングルコア、マルチコア、又はクラウドコンピューティングアーキテクチャにおけるクラスタコアを含むことが可能である。検査用コンピュータ302はまた、バス308を介してネットワークインタフェイスカードNIC318に接続することが可能である。該NIC318は、該検査用コンピュータ302をネットワーク304に接続することが可能である。該ネットワーク304は、ローカルエリアネットワークLAN、ワイドエリアネットワークWAN、又はその他のネットワーク構成とすることが可能である。該ネットワーク304は、ルータ、スイッチ、モデム、又は相互接続のために使用される他の任意の種類のインタフェイス装置を含むことが可能である。該ネットワーク304は、ウェブサーバ320に接続することが可能である。図示しないが、該ウェブサーバ320は、ネットワーク304を介して様々な他のコンピュータに接続することが可能である。検査用コンピュータ302は、バス308を介してプロセッサ306に動作可能な状態で接続された他の装置ローカルプロキシサーバ322などを有することが可能である。バス308を介してプロセッサ306に動作可能な状態で接続された他の装置は、有形のマシン読み取り可能記憶媒体ストレージ324など、イベントベースレコーダモジュール326、スキャンエンジン328、及び監査エンジン330を含むことが可能である。該ストレージ324は、ハードディスクドライブ、リードオンリーメモリROM、ランダムアクセスメモリRAM、RAMドライブ、フラッシュドライブ、光学ドライブ、及びキャッシュメモリ等を含むことが可能である。プロキシサーバ322、イベントベースレコーダモジュール326、スキャンエンジン328、及び監査エンジン330は、検査用コンピュータ302上に存在するものとして示されているが、当業者には理解されるように、それら装置は、検査用コンピュータ302上に存在することも、該検査用コンピュータ302に接続された他の任意のコンピュータ上に存在することも可能である。図4は、本技術の一実施形態による自動セキュリティ検査のためのコードを格納する持続性コンピュータ読み取り可能媒体を示すブロック図である。該持続性コンピュータ読み取り可能媒体は包括的に符号400で示されている。該持続性コンピュータ読み取り可能媒体400は、プログラミングコード等のコンピュータにより実行される命令を格納する任意の一般的な記憶装置に対応し得るものである。例えば、該持続性コンピュータ読み取り可能媒体400は、不揮発性メモリ、揮発性メモリ、及び/又は1つ以上の記憶装置のうちの1つ以上を含むことが可能である。不揮発性メモリの一例として、EEPROMElectricallyErasableProgrammableReadOnlyMemory及びROMが挙げられる但し、これらには限定されない。揮発性メモリの一例として、SRAMStaticRandomAccessMemory及びDRAMDynamicRandomAccessMemoryが挙げられる但し、これらには限定されない。記憶装置の一例として、ハードディスクドライブ、CDCompactDiscドライブ、DVDDigitalVersatileDiscドライブ、及びフラッシュメモリデバイスが挙げられる但し、これらには限定されない。プロセッサ402は一般に、自動セキュリティ検査のための持続性コンピュータ読み取り可能媒体400に格納されているコンピュータにより実行される命令を読み出して実行する。ブロック404で、記録モジュールは、その実行時にプロセッサにマクロを記録させる。該マクロは、ウェブページの様々な要素を含むことが可能であり、ユーザが該ウェブページと対話する際に記録される。ブロック406で、再生モジュールは、その実行時にプロセッサにマクロを実行させる。該マクロは、ウェブブラウザで再生することが可能である。ブロック408で、インターセプトモジュールが、その実行時にプロセッサにマクロの再生によるウェブリクエストをインターセプトさせる。該ウェブリクエストは、マクロの再生中にインターセプトすることが可能である。ブロック410で、アタックモジュールが、その実行時にプロセッサに該ウェブリクエストをアタックさせる。該ウェブリクエストは、該ウェブリクエスト中に悪意のあるコードをインジェクトすることによりアタックすることが可能である。ブロック412で、レスポンスモジュールが、その実行時にプロセッサに、該ウェブアタックに対するウェブサーバのレスポンスを処理することにより脆弱性の判定を行わせる。脆弱性はまた、レスポンス中のスクリプトがウェブブラウザ内で実行された際に該スクリプトの実行によりコールされた特定のDOMメソッドにより判定することが可能であり、該DOMメソッドがアプリケーションコードにフックされる。更に、レスポンス中のスクリプトはウェブブラウザ内で実行することが可能であり、DOMメソッドが実行される際に実行することができるアプリケーションコードに幾つかのDOMメソッドをフックすることが可能である。脆弱性は、該アプリケーションコードの実行により示されるスクリプトの実行中にコールされたドキュメントオブジェクトモデルメソッドに基づいて判定することが可能である。