私は開発中のセキュリティツールのテストを自動化するためにSeleniumのWebDriverを使用しようとしています。具体的には、反射XSSを介してHTMLページにjsペイロードを挿入しようとしています。ペイロードの適性をテストするためには、実際にスクリプトが実行されていることを確認する必要があります。Selenium WebDriverの情報を簡単に渡す方法は?
私はXSSのペイロードは、次のいずれかの方法で、私のPythonプログラムに情報を渡す特定の関数を呼び出すことによってこれを行うことで、主に成功している:
- はDOMで新しい要素を作成し、それらを見つけます
- 作成ダイアログをJSでのウィンドウのタイトルを設定し、driver.titleを経由して、それを読んでwebdriverをパイソンのAPI(find_elements_by_class_nameなど)
- は/ jsの中で求められますし、driver.switch_to_alert()
しかし、上記のすべてがかなりハッキーであり、遅いです(特に希望の要素が存在しない場合は#1)私は愚かであり、私の暗黙の待ち時間は本当に高いですが、私はまだdomを作成する方法が嫌いです文字列を渡す要素)。また、複数のアラートがある場合、最後のオプションは一貫して失敗します。
driver.execute_script(スクリプト)で変数値を取得したかったのですが、 'return window.name'のようなものは常にNoneを返すので、スクリプトは実際に値を読み取れないようです。つまり、私はexecute_script()が最も速いメソッドであるとは思っていません。なぜなら、このスクリプトを実行する際に多くのオーバーヘッドを実行する必要があるからです。
ブラウザコンテキスト内から実行時情報を制御するPythonプログラムに渡す最も速い方法は何ですか?多くの情報を送信する必要はありません。たぶん数kbになるので、Cookieの値で十分ですが、ブラウザのURLはおそらくそうではありません。
したがって、読み込まれたページからソートのクッキー値やその他の情報を読み取ろうとしていますか? – gerosalesc
スクリプトが実際に実行されたかどうかを確認しようとしています。スクリプトは、クッキー値の設定、DOMの変更、BOMの変更、またはAJAXリクエストの送信から何でもできます。スクリプトの内容は決まります。私が知りたいことは、スクリプトが最初に実行されるかどうかを判断する良い方法です。 – SyntaxTerror