そのため、OWASP ZAPを使用したセキュリティテストに最近取り組んでいます。しかし、私は(ajax)スパイダーを単一ページアプリケーションの許可された領域内でテストすることができないという点で障害にぶつかりました。
以下の画像で説明されているように、セッションプロパティのさまざまなオプションを見てきました。ただし、私の単一ページアプリケーションへの承認には、base64でエンコードされたユーザー名とパスワードが、サポートされていないように見えるヘッダー値として送信されます。
理想的には、ヘッダー値のbase64文字列を自分で指定するか、ユーザー名とパスワードを指定して、ZAPプロキシにフィールドに入力して送信し、Webアプリケーションにエンコードして送信させるだけでよいのです。
私は本当にこの制限を回避するための良い提案があるかどうか本当に思っていましたか? 「スクリプトベースの認証」を見ましたが、そのスクリプトをインポートできませんでした。どのように機能するのかよくわかりませんでしたか?
ZAPのZest機能を使用して、認証を実行できます。上部のアイコンバーの右端に、「新しいZestスクリプトを記録...」というテープアイコンがあります。それをクリックして、名前を選択し、[タイプ]ドロップダウンで[認証]を選択します。
次に、ZAP経由でブラウザーを開き、手動でサイトにログインします。もう一度テープアイコンを押すと、録音が停止します。 ZAPでは、スキャンしたサイトが表示されている左側で、[スクリプト]タブに切り替えてスクリプトを見つけます。記録されたリクエストが表示され、認証に不要なレコードを削除することができます。
右上のクイックスタート/リクエスト/レスポンスの横にある「スクリプトコンソール」タブに、記録されたスクリプトを実行するためのボタンがあります。
スクリプトが機能している場合は、OPでスクリーンショットを作成したコンテキスト設定に戻り、[スクリプトベースの認証]を選択します。記録されたスクリプトを選択できるようになります。 「ロード」をクリックして、正規表現パターンを入力します。
ここで、多くの時間を費やした部分について説明します。ユーザーはスクリプトの一部なので、必要ないはずですが、コンテキスト設定でユーザーを指定する必要があります。ユーザー名とパスワードに必要なものを入力するだけです。
これで完了です!スパイダーを開始し、コンテキストと偽のユーザーを選択すると、正常に機能するはずです。