概要
- 理解の確認として、振り返りもかねてGET、POSTの使い分けをまとめる
GET・POST使い分け
参照の場合
GET メソッドは、[ 現在の,ターゲットリソース用に選定される表現 ]を転送するよう要請する。 GET は、情報を検索取得する主たる仕組みであり,ほぼすべての処理能 最適化の力点が置かれる所である。 よって、誰かが[ HTTP を介して識別できる何らかの情報を検索取得する ]ことについて話すとき,たいていは GET 要請を為すことを指している。
- GETメソッドは、参照のみに用いる
- GETメソッドは副作用がないことが期待される
秘密情報の場合
9.4. URI 内の敏感な情報の開示
URI は、セキュアなリソースを識別するものであっても,[ 共有され, セキュア化されないもの ]になるように意図されている。 URI は、[ ディスプレイに示される/ ページの印刷時に各用紙に刷られる/ 様々な未保護なブックマークリスト内に格納される ]ことが多い。 したがって,[ 敏感な/個人識別可能な/開示されるリスクがある ]情報を URI に内包することは、賢明でない。
サービスの作者は、[ GET に基づくフォームによる,敏感なデータの提出 ]は避けるべき.である — 何故なら、そのデータは, request-target 内に置かれることになるので。 多くの既存の[ サーバ/プロキシ/UA ]は、 request-target を[ 第三者主体から可視になり得る所 ]に,ログしたり, 表示する。 そのようなサービスは、代わりに POST に基づくフォームによる提出を利用するべき.である。
Referer ヘッダは,要請を生じさせた文脈について ターゲットサイトに伝えるので、[ 参照元リソースの URI ]内に見出され得るような[ 利用者の直前の閲覧履歴についての情報, その他の個人情報 ]を露わにする可能性がある。 Referer ヘッダに対する制限は、その定義に述べたように,そのセキュリティの考慮点の一部に取り組む。
- 秘密情報の送信にはPOSTメソッドを用いる
- リソースの取得以外の動作、追加・更新・削除などの作用がないことを示している。
- Refererヘッダやrequest-targetヘッダに置くことで、第三者から見ることができてしまう
送信すべきデータ量が多い場合
- ブラウザ上の制限があるため、多い場合はPOSTを利用する
まとめ
- データを参照するものはGETを利用する
- 参照以外のことを行う場合は、POSTやDELETEなど別のメソッドを利用する
- 第三者に公開していけない情報が含まれる場合は、POSTを利用する
- データが多い場合も、POSTを利用する
参考図書
体系的に学ぶ 安全なWebアプリケーションの作り方 第2版 脆弱性が生まれる原理と対策の実践 単行本 – 2018/6/21
参考web
まとめ
基本的に問題なく利用していたが、体系的に学ぶ 安全なWebアプリケーションの作り方 第2版 脆弱性が生まれる原理と対策の実践 単行本 – 2018/6/21を利用して学習していく中で、基礎の部分をさらうべきであると考えまとめた。
データ量に関しては知らなかったため、早めに学ぶことができてよかったと思う。