Webセキュリティ初心者向け学習パス
Webの問題では、画面上の操作と、ブラウザとサーバーの間で交わされる通信を対応させて読む力が必要です。
まず仕組みを観察し、その後に入力、認証、表示、権限の問題を分けて学びます。
第一段階:HTTPの要求と応答を読む
ブラウザの開発者ツールを使い、自分の操作で発生するURL、メソッド、ステータス、本文を確認します。
この段階では値を変えることより、どの画面がどの要求を送るかを説明できることを優先します。
Webセキュリティ入門とWebカテゴリが入口です。
第二段階:入力とデータの境界を確認する
検索やフォームの問題で、利用者の値がデータベースの問い合わせや画面表示にどう渡るかを追います。
SQLインジェクションの基礎では命令と値を分ける理由を、XSSの基礎ではデータとコードを分ける理由を確認できます。
第三段階:認証と認可を区別する
認証は本人を確認する処理であり、認可はその利用者に許された操作を決める処理です。
ログインできることだけで、全てのデータや機能を使えるべきだとは決まりません。
問題を解いた後には、サーバー側でどの操作にどの権限確認が必要かを書き出します。
進捗を判断する目安
一問の解答を、画面、通信、サーバー側の確認、利用者への表示の順に説明できれば、次の難易度へ進めます。
手順だけを再現できる状態ではなく、値を変えた理由と防御の場所を説明できる状態を目指してください。
許可された演習だけで試す
Webの入力や通信を変える検証は、チャレンジ環境または明示的に許可されたテスト環境に限られます。
公開サービスのフォーム、ログイン、APIに試行を広げず、責任ある利用方針に従ってください。