マニュアル探索の仕方

Local Proxes 設定をした Firefox ですべてのページを探索します。 GET で参照可能なページは、 containing urls のインポート機能や、スパイダーで検出可能なので、 POST で遷移するフォームを重点的に探索します。

Note: マニュアル探索する場合は、途中でログアウトしないように注意してください。 ログアウトしてしまうと、CSRFトークンが変わってしまい、動的スキャンが失敗してしまう場合があります。

テスト中に CSRF トークンが変更されないよう、機能ごとに マニュアル探索→動的スキャン を繰替えすのがコツです。

日本語入力フォーム

カナ氏名など、日本語入力必須な入力フォームは、必ず日本語入力をしてマニュアル探索をすること。 日本語入力をしておくことで、動的スキャンでも日本語を使用して検査をしてくれます。

特殊な遷移パターン

POST の mode パラメータで遷移を制御している場合

フォームの入力 → 確認画面 → 完了画面 といった遷移パターンの機能において、さらに大きく2種類の遷移パターンがあります。

1. 入力画面、確認画面、完了画面が URL で分けられているケース

画面 入力画面 確認画面 完了画面
URL /shopping /shopping/confirm /shopping/complete

2. 入力画面、確認画面の遷移が POST の mode パラメータで分けられているケース

画面 入力画面 確認画面 完了画面
URL /contact /contact /contact/complete
POST   mode=confirm mode=complete

1 の場合は、特に難しくは無いのですが、 2 のような機能の場合は、次の動的スキャンの際に工夫が必要です。

Note: お問い合わせ画面、会員登録画面などが該当します。

セッションでデータの引き継ぎをしている場合

フォームの入力 → 確認画面 → 完了画面 といった遷移パターンの機能において、入力画面で入力したデータをセッションに格納し、確認画面から完了画面の遷移には入力項目が存在しない(hidden で引き継ぎしない)画面があります。

この場合、フォームの入力 → 確認画面の動的スキャンは可能ですが、確認画面 → 完了画面の動的スキャンは十分にできません。

Note: sequence アドオンや ZAP Script を使用することで、複数画面遷移のテストが可能な場合はありますが、ここでは割愛します。

入力画面で入力した内容を、完了画面で表示するようなカスタマイズや、プラグインを導入している場合は、十分にテストできない可能性がありますのでご注意ください。

Note: 商品購入完了画面が該当します。