amareloのブログ(仮)

IT系勉強会で感じた想いや知見をメインに書いていきます。

HTTPのGETメソッドとPOSTメソッドの違い

ウェブ・セキュリティ基礎試験(徳丸試験)を受験すると宣言してから随分と時間経ってしまいました。やっと着手できるようになりましたので、勉強再開します。 これからは、ウェブ・セキュリティ基礎試験について勉強したことをここに書いていこうと思います。

で、改めてGETメソッドとPOSTメソッドについて勉強しなおしましたが、「違いって何だっけ?」って思いましたので、整理しなおしました。

目次

参考文献

GETメソッド

  • 参照(リソースの取得)に使用する。
  • パラメータをURLに格納してリクエストをする。
  • 副作用(※)がないことを期待される。

※サーバ側でのデータ追加・更新・削除があること。同じ要求を何度繰り返しても同じ結果が得られること。

POSTメソッド

  • メッセージボディにパラメータ値を格納してリクエストをする。
  • 秘密情報を送信する場合に使用する。
  • 副作用がある場合に使う。
  • データ総量が多い場合(URLが長すぎる場合)に使用する。

秘密情報送信時にPOSTを使うべき理由

  • URL上のパラメータがReferer経由で外部に漏洩する恐れがあるため。
  • パラメータがサーバのアクセスログに残るため。
  • パラメータが入っているURLを利用者にSNSなどで公開される恐れがあるため。

Refererとは?

リンク元のURLを示すヘッダです。セキュリティ確保の目的でRefererチェックに使われたりもしますが、 アクセス者が意図的に書き換えることも可能です。 また、URLにセッションIDのような秘密情報を含んでいると、Refererヘッダから情報が外部に漏洩して、 なりすましに悪用される恐れがあります

最後に

今日はここまでにします。 これから勉強を進めるにあたり、不備不足がありましたら追記修正していきます。 短くてもアウトプットしながら学んでいけたらなぁと思います。