はじめに
Adventカレンダー「エンジニアのためのWebマーケティング」の5日目です。
サクッと読める記事を目標に。異論・ツッコミ大歓迎。
できるだけ専門用語を使わないように気をつけます。
それでは参りましょう
Cookieについて
Cookieって何?
お菓子です
違います。
真面目に述べると・・・
- ブラウザに保存される情報のこと
- ユーザー管理やセッション管理に用いられる
- クライアントの通信履歴を 取るために作られた
はじめはなかった
インターネット黎明期 Cookieという機能は存在しませんでした
何故なら、HTTPは本来同一URLならば
同一の内容を提供しないといけなかったからです。
今で言う、履歴やログインの機能を使う概念がそもそも無かったのです。
懸念が発生
しかし、インターネットの普及につれて、ニーズが生まれてきます。
「同一URLでは、同一の内容を表示していないといけない」
というルールを遵守し続けると、例えば商品の購入完了ページをリロードし続けたりした場合に、
同じ商品の購入を読み込まれた回数連続でしてしまうという現象が発生してしまいます。
そうなると、購入した人間は困りますし、
そもそもURLが共有されると購入されるというのはセキュリティ的にどうなの??
安全性は担保できないの?
という懸念が発生します。
閑話休題 -当時流行していたブラウザ-
ちなみにそんな世の中のときに流行していたブラウザ
みなさんをちょっとだけノスタルジックな気分へ誘います。
個人的には、marquee
タグが懐かしいですね。
Internet Explorer 5
(画像出典:[INTERNET Watch]
(https://internet.watch.impress.co.jp/www/article/980612/ie5.htm))
IEが懐かしいけども、そもそも昔のWindowsが懐かしい・・・。
Netscape Communicator 4
(画像出典:[窓の杜]
(https://forest.watch.impress.co.jp/article/2000/05/29/netscape473.html))
懐かしい・・・
IEはお気に入りというのに対し、Netscapeはブックマークという言語が揃ってない感がいいですね。
はい、懐古タイムはここまで。
偉い人は考えた
話をもとに戻します。
そんな懸念が発生していた世の中で、Netscape Communications Corporation社(後のMozilla Foundation)がCookieという技術を提案します。
「ブラウザに整理券配布できるように
すればいいんじゃない?」
「そうすれば、ユーザーを判定できてサイトの内容をユーザーに合わせて変えられるのでは!?」
「じゃあもう、それ実装するっきゃない!」
そんなイメージで彼らがまとめた仕様は以下です
- ウェブサーバがウェブブラウザにその状態を区別する識別子をHTTPヘッダに含める形で渡す。
- ブラウザは次にそのサーバと通信する際に、与えられた識別子をHTTPヘッダに含めて送信する。
- サーバはその識別子を元にコンテンツの内容をユーザに合わせてカスタマイズし、ブラウザに渡す。必要があれば新たな識別子もHTTPヘッダに含める。
以降2、3の繰り返し。
(出典:Wikipedia)
簡単にまとめると以下の感じ
Cookieの特性
Cookieの特性として、以下のようなものが挙げられます
ブラウザ側は自由にCookieを操作できる
人が手動で値を変更できますし、Javascriptで操作も可能です。
- ブラウザ・ドメインごとにCookieは異なる
- そもそもの思想がサイトを区別するためであるから
- サブドメイン間では同一Cookieを
使用することができる
- 以下のドメインでは共通のCookieが使用できます
- www.example.com
- abc.example.com
- def.example.com
- foo.example.com
揮発性がある
いつ消されてもおかしくない
Cookieはユーザー側でいつでも消そうと思えば消せます。
そして、そもそもの仕様として「有効期限が必ず設定」されています。
ちなみに・・・
その有効期限を2038年以降を指定すると不具合が発生します。
原因はこちら → 2038年問題
さっきの話をもとにすると、
Cookieを消してしまえば、つまり**「整理券をなくせば、また取り直す所から」**になります。
つまり、これは言い換えると本当の意味でのWebサイトへの初回アクセスは判断できないということになります。
潜む脆弱性
Cookieにはリスクもあります。
なりすましをすることができる
Cookieのが持ってる値を何らかの形で奪われてしまうと、他人のブラウザになりすますことができます。
例えば、Facebookのクッキーデータが奪われてしまった場合、自分の個人情報が筒抜けになってしまいますし、見に覚えのない投稿をされてしまうような可能性もあります。
オレオレ詐欺じゃないですが、ネット上でCookieの値を聞かれても、絶対に情報を公開しないでください。
Cookieを除外するオプションは実は危険
ブラウザは、Cookieを受け入れるオプションを切ることが出来ます。
その場合でも、URLにセッションの情報を付与することで、Cookieが有効かのように振る舞うことが出来ます。が、この場合URLに情報が載っているのでパケットキャプチャソフトなどを使うことによって、簡単に覗かれてしまいます。
Cookieもリスクがありますが、Cookieを使わないのはもっと危険です
広告にも応用されている
上記の特徴があるCookieですが、広告の技術にも使われています。
以下のような特性が、広告の分析に役立っています
- 履歴が取れる
- ユーザーごとに異なる
前日に書いた記事でも。Cookieはユーザーの判定に使われています。今やユーザーの判別には欠かせない要素になっています。
しかし、先程述べたように本当の意味でのユーザーではないので、どれだけ精度を高くユーザーを推定するか、はWeb広告業者や広告効果測定業者の腕の見せ所となっています。
他のCookieに纏わる話
Cookieといえば、以下の話が最近話題になっています。
- 1st Partyと3rd Party
- ITP
- GDPR
これらの話はまた別の日のAdvent Calendarで解説します。
おさらい
今日の記事のまとめです。
- Cookieはブラウザごとの整理券のようなもの
- ブラウザ・ドメインごとに区切られる
- 揮発性が高く、容易に消すことも可能
- 非常に便利な側面もあるが、セキュリティのリスクは孕んでいる
- 広告の技術にも応用されている
どうでもいい話
ちなみに、Cookie
という名前の由来ですが、考案者のルー・モントゥリ氏は以下のように述べています。
I had heard the term "magic cookie" from an operating systems course from college. The term has a somewhat similar meaning to the way Web Cookies worked and I liked the term "cookies" for aesthetic reasons. Cookies was the first thing I came up with and the name stuck.
早い話が、Cookieという言葉が気に入っていたようです。
おわりに
明日は「なぜ広告を分析する必要があるのか」について書きます。