Think Village

日々思ったこと、気づいたことを推敲もなしに気ままに書き綴っています。

Cookieってなんだ

Webサービスに当たり前に使われているCookieだが、ちゃんと考えたことはなかった意識の低さよ。

背景など、分かってなかったことだけ書く。 

Cookie

  • 正式名称 HTTP Cookie
  • RFC 6265などで定義されたHTTPにおけるウェブサーバとウェブブラウザ間で状態を管理するプロトコル
  • HTTPはそもそも、それだけではステートレスであり、逆にそこが問題であった。Cookieを実装することでユーザー情報を保持するなどのステートフルなことができるようになった。
  • HTML DOMの一部としてアクセスできる。(だからこそJavascriptから参照できる)
  • TLSでなければ(平文だと)読み取られる可能性があり、そのユーザーへのなりすましも可能である。
    それを防ぐ方法としては、CookieにSecure属性をつけるのが有効である。そうするとHTTPS通信でしか、ブラウザはCookieを送らない。
  • HttpOnly属性をつけると、ブラウザなどのクライアント側から(Javascriptを用いるなどして)Cookieを参照することができない。