これを行うためにPHPとCodeigniterを使用しています。現在、ユーザー名と $logged_in 変数を true に設定して、Cookie をユーザーに保存しています。次に、ユーザーがページにアクセスしようとすると、$logged_in のステータスを確認し、アクセスしている場合は自由にアクセスできます。
これは、これを行うための最も安全な方法ではないかもしれないと思います。私が使用すべきより良い戦術はありますか?
これを行うためにPHPとCodeigniterを使用しています。現在、ユーザー名と $logged_in 変数を true に設定して、Cookie をユーザーに保存しています。次に、ユーザーがページにアクセスしようとすると、$logged_in のステータスを確認し、アクセスしている場合は自由にアクセスできます。
これは、これを行うための最も安全な方法ではないかもしれないと思います。私が使用すべきより良い戦術はありますか?
まったく安全ではありません。Cookie はユーザー入力と見なされ、どのような場合でも信頼できません。
代わりにセッションを使用してください。また、データベース内のログイン コードと照合され、たとえば 5 分ごとに更新される、ある種のカスタム ログイン暗号化コード (個人的には SHA1 をお勧めします) を使用することもできます。
CodeIgniter は、この問題に対する優れた解決策を提供します。データベース セッションを使用できます。
データベース セッションでは、セッションに入力したすべてのデータが SQL データベース内に保存されます。ユーザーは、定期的に変更される一意のセッション ID を持つ Cookie を取得します。セッション ID と IP およびユーザー エージェントは、ユーザーをセッション データと照合するために使用されるため、ユーザーが自分のセッション データを改ざんすることは不可能であり、他のユーザーのセッションをハイジャックすることは非常に困難です。
CodeIgniter データベース セッションの詳細については、CodeIgniter User Guideを参照してください。