PHPでCookieを扱う

(1/1)
クッキーモンスター
PHPでは、簡単に Cookie を利用することができる。ここでは、Cookieを利用し、ユーザー毎のアクセス・カウンタをつくってみることにする。

サンプル・プログラム

目次

サンプル・プログラムの解説

0009: if (isset($_COOKIE['counter']) == FALSE)   $counter = 1;
0010: else                                        $counter = $_COOKIE['counter'] + 1;
0011: setcookie('counter',  $counter);
0012: print $counter . '回目の訪問です.';
0013: 

Cookie の値は、PHPにあらかじめ定義されているグローバル変数 $_COOKIE に代入されている。

そこで、$_COOKIE["counter"] が存在しなければ初回アクセスと考えられるので1を代入、それ以外なら1を加算する。
カウンタの値をCookieに戻すには関数  setcookie  を利用する。

プライバシー保護とセキュリティ対策

Cookie は、サーバサイドからユーザーのマシンに対してデータを保存させるほとんど唯一の手段である(ActiveXなどを使えば同様のことができるが、これはWindows限定である)。
この働きを悪用することで、悪意のあるプログラムを埋め込んだり、ユーザーの個人情報を盗むことが可能になる。また、自分のプログラムには悪意がないとしても、第三者によって悪用されるおそれがある。

そこで、Cookie を扱う上では、以下に述べるようなマナーを守ること。

1.Cookieに個人情報、パスワードなどを代入しない
Cookie に個人情報(氏名、住所、電話番号、メールアドレス、カード番号、等々)やパスワードを代入することは、キャッシュカードに個人情報やパスワードを記録するのと同じである。他のプログラムから読み取られるおそれがあるので、Cookie に個人情報やパスワードなどを代入してはならない。

2.Cookieで本人認証を行わない
では、個人情報やパスワードはサーバ側に持たせ、Cookie が合致したユーザーが本人であると認証して良いか――前半はYESだが、後半はNOである。
あなたが優れた乱数から発生させた Cookie を使っているとしても、ユーザーのCookie管理はあなたほど完璧ではないのだ。Cookie それ自身を盗んでしまえば、、本人に成りすますことは簡単である。
インターネットのショッピングサイトでは、一度ログオンしたユーザーに対しては Cookie による本人認証しているところが多い。注意したい。

3.Cookieが偽造されている可能性を考慮する
ユーザーのPCに記録されている Cookie を加工することは簡単である。Cookieは偽造される可能性があることを考慮に入れてプログラムを作ること。
たとえば、ショッピング・ポイントなどを Cookie に埋め込むことは避けるべきである。ある程度の知識があるユーザーなら、簡単にポイントを水増しできるからだ。

4.Cookieを使っていることをプライバシーポリシーに明記する
最近のブラウザは Cookie を受け入れないように設定することができる。もし Cookie を使って何らかの制御を行いたい場合は、受け入れ拒否の設定は困る。
そこで、サイトのプライバシーポリシーに、“Cookieでどんな情報を何の目的で使うか”を明記して、Cookie の受け入れを許可してもらうようユーザーに訴えるのが良いだろう。いずれにしても、Cookieを使わずにすませられるなら、それに越したことはない。どうしても使う必要がある場合は、その目的、格納する情報について十分に検討し、プライバシーポリシーとして公開すべきである。

参考サイト

(この項おわり)
header