質問: PHPとCookieを使って閲覧履歴を実装する予定なのですが 閲覧履歴の実装を行うのは、はじめてなのでどのように実装すればよいのか悩んでいます。 以下の手順で実装しようと思うのですが、セキュリティ的な面も含め助言していただけたら助かります。 また、こう実装した方がよいというのがあれば教えていただければ助かります。 1. ログイン時にユーザーID(ログイン時には使用しないID)をハッシュ化してCookieに保存 2. 投稿ページを表示したタイミングで閲覧した投稿のIDをハッシュ化して閲覧日時と一緒にCookieに保存 3. 閲覧履歴の表示時、Cookieに保存しているユーザーIDのハッシュを判定 4. Cookieに保存しているハッシュ化された投稿IDを、WHERE文で取り出して表示(DBにはあらかじめidをハッシュ化させて保存させたものとします) 文章から伝わりづらいかもしれませんが、どうぞよろしくお願いします。
回答: 全ての実装を、session 関数の利用を前提に検討し直したほうが良いです。 **追記** マイナスがついたので、少し補足します。 archx さんのやろうとしていることは、session の自前実装であり、一般的に「やるべきではない」と言われていることです。 安全なウェブサイトの作り方 こちらの PDF の「3.4 不適切なセッション管理の例」に自前実装時の危険性に関する簡単な説明がありますが、PHP では、セッション管理のための関数が session 関数として用意されているので、そちらを使用することを検討するのがセキュリティ的に正しいです。 セッション関連-php.net