【PHP初心者向け】Cookieは「追跡タグ」だ!サーバーが仕掛けるストーカーの手口

cookie webシステム

webにおけるクッキーは実はお菓子ではない

Webサイトを見ていると、頻繁に聞かれます。
「Cookieを有効にしますか?」

お菓子をくれるわけではありません。
これは「あなたのブラウザに、追跡用のタグを貼り付けてもいいですか?」という許可を求めているのです。

Cookieとは、WebサーバーがあなたのスマホやPCの中に勝手に保存する「小さなメモ」のことです。

なぜそんなことをするのか。
それは、インターネットの基本ルール(HTTP)が、致命的な「記憶喪失」を患っているからです。


サーバーは「3歩歩くと忘れる」鳥頭

あなたがAmazonで買い物をしているシーンを想像してください。

  • 商品一覧を見る
  • 「カートに入れる」ボタンを押す
  • 決済画面に行く

この一連の流れ、人間からすれば当たり前です。
しかし、Webサーバー(HTTP通信)にとっては奇跡に近い行為です。

なぜなら、サーバーは「1秒前のアクセス」すら覚えていないからです。

あなたが「カートに入れる」を押した瞬間、サーバーは処理をしますが、次の瞬間にあなたが決済画面に行くと、サーバーはこう言います。

「はじめまして。誰ですか?」

毎回です。ページを移動するたびに記憶がリセットされる。これがHTTPという通信における「ステートレス」という仕様です。

これでは買い物どころではありません。ページ移動のたびに「私はこういう者です…」とIDとパスワードを入れて自己紹介する必要があります。


解決策:客に「荷物」を持たせる

サーバー側で覚えられないなら、客(ブラウザ)に覚えさせればいい。
この逆転の発想で生まれたのがCookieです。

  • あなたがログインする。
  • サーバーは「こいつは田中だ」と確認する。
  • サーバーは、あなたのブラウザに「私は田中です」と書かれたメモ(Cookie)を強引に渡す。
  • 「次に来るときは、必ずそれを見せろよ」と命じる。

これ以降、あなたのブラウザは、そのサーバーにアクセスするたびに、頼まれてもいないのにCookieを提示します。

「へい、私は田中です」

サーバーはそれを見て、「おお、田中か。さっきぶりだな」と認識します。
これでようやく、ログイン状態が維持され、カートの中身が消えずに済むのです。


PHPでの貼り付け方:setcookie

PHPでこのタグを貼り付けるのは簡単です。
setcookieという命令を使います。

// 名前, 値, 有効期限(現在時刻 + 1時間)
setcookie("user_name", "Tanaka", time() + 3600);Code language: JavaScript (javascript)

これで、閲覧者のブラウザに「user_nameはTanaka」という情報が保存されました。
有効期限を過ぎると、このタグは自動的に消滅します。

逆に、ブラウザから送られてきたタグの中身を読むには、$_COOKIEという専用の連想配列を使います。

echo $_COOKIE["user_name"]; // 結果:TanakaCode language: PHP (php)

サーバーは何も覚えていません。ただ、送られてきたタグを読んでいるだけです。

もしも初心者の方で、「連想配列の理解が怪しい…」という場合は、以下の記事をご覧ください。


恐怖の追跡:なぜ広告は追いかけてくるのか

Cookieは便利ですが、使い方によっては「ストーカー」になります。

あなたがスニーカーのサイトを見た後、全く関係ないニュースサイトに行っても、スニーカーの広告が表示された経験があるはずです。

あれは「サードパーティCookie」という手口です。

  • スニーカーサイトを見る。
  • そこに埋め込まれていた「広告配信業者」が、あなたの背中に「スニーカー好き」というタグ(Cookie)を貼る。
  • あなたが別のニュースサイトに行く。
  • そこにも同じ「広告配信業者」がいて、あなたの背中のタグを読み取る。

「おっ、こいつスニーカー探してるな。広告出したろ」

サイトを跨いで、あなたの行動履歴が共有される。
これが「追跡(トラッキング)」の正体です。

最近、iPhoneなどが「トラッキングを許可しますか?」と聞いてくるのは、この「背中の張り紙」を勝手に読ませないようにガードするためです。


まとめ:便利さとプライバシーの等価交換

Cookieは、Webを便利にするための必要悪です。

  • メリット:ログイン維持、カート保存、設定の保存。
  • デメリット:行動履歴の追跡、プライバシーの侵害。

PHPで開発をしていく上で、Cookieは避けて通れません。
しかし、そこには個人情報や重要なデータ(パスワードそのものなど)を保存してはいけません。

なぜなら、Cookieは「ユーザーが持っているメモ」だからです。
その気になれば、ユーザー自身が中身を書き換えることも、盗み見ることも可能です。

あくまで「会員証」や「整理券」レベルの情報を預ける場所。それがCookieの正しい使い方です。

コメント

タイトルとURLをコピーしました