目次
例
https://example.com/search?q=tokyo&page=2
この例では
q=tokyo(検索ワード)
page=2(ページ番号)
がGETパラメータです。
原則として、GETパラメータは検索や参照などの「データを取得する処理」だけに使うのが正しい設計です。
一方で、データを変更する処理(UPDATE・DELETEなど)や機密情報の送信に使用してはいけません。
そのため、システムテストでは「GETパラメータが正しく使われているか」を確認する必要があります。
① GETパラメータの確認方法(基本)
まず、ブラウザのURLを確認します。
例
https://example.com/articles?id=123
この場合は
id=123 を指定して記事を表示する参照処理なので問題ありません。
ディレクターがテストするときは次を確認します。
- URLのパラメータを変更しても表示が変わるだけか
- データが書き換わらないか
例えば
?id=123 → ?id=124
に変更してページを再読み込みすると、
別の記事が表示されるだけなら正常なGET利用です。
② GETパラメータで変更処理が起きないか確認
次に重要なのが、データ変更処理がGETで行われていないかの確認です。
例えば次のようなURLがあった場合は危険です。
https://example.com/delete?id=123
このURLを開いただけで削除処理が実行される場合、
GETでDELETE処理が実装されていることになります。
テスト方法は以下です。
- 削除・更新ボタンを押す
- URLが変わっていないか確認
- GETパラメータで処理していないか確認
安全な設計では、こうした処理はPOST・PUT・DELETEなどのHTTPメソッドで行われます。
③ 機密情報がGETに含まれていないか確認
GETパラメータはURLに表示されるため、
ログ・ブラウザ履歴・共有URLに残るという問題があります。
そのため以下の情報が含まれていないか確認します。
NG例
?password=123456
?creditcard=xxxx
?token=xxxx
テスト時は特に次のページでURLを確認します。
- ログイン画面
- 会員登録
- 決済ページ
これらのページでURLを見て、機密情報が含まれていないかをチェックします。
④ GETパラメータが適切に使われている例
正しい利用例は次のようなものです。
?q=travel
?page=2
?sort=price
?lang=ja
?utm_source=instagram
これはすべて
- 検索
- フィルタ
- ソート
- 状態保持
- 広告トラッキング
などの参照系処理なので問題ありません。
まとめ
システムテストでは、GETパラメータについて次の3点を確認します。
- 検索・参照処理だけに使われているか
- DELETEやUPDATEなどの変更処理に使われていないか
- パスワードなどの機密情報が含まれていないか
URLはシステムの設計思想が表れやすい部分です。
テスト時にURL構造を意識して確認することで、セキュリティや設計上の問題を早期に発見することができます。