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