1

初めてユーザー アカウントを使用してサイトを構築しています。ユーザーのログインを安全にする作業を行っています。登録時に、保存する前にパスワードをハッシュし、ログイン時にパスが正しい場合は、setCookie を使用してユーザー情報を含む Cookie を保存します。

現在、アカウントの乗っ取りは、Cookie の値を変更するのと同じくらい簡単です。サイトを安全にしたいのですが、読んでいるほとんどのオプションは複雑すぎるようで、自分でできることをしたいと思っています。私はいくつかのチュートリアルを読んで、それを行う方法の基本的なアイデアを持っていますが、それがどれほど安全かはわかりません.

私の考えは、セッション用のテーブルを作成し、ユーザー ID + ランダムな値を保存し、両方で Cookie を保存し、すべてのページをチェックしてテーブルに対して両方の値をロードし、それらが正しい場合は更新することです。これは簡単に作成でき、ユーザーが別の場所からログインしても機能するようですが、安全性はわかりません。Cookie は表示されますが、誰かが Cookie を盗んで更新前に使用しない限り、セッションをハイジャックする方法はありません。

これは安全ですか?他にどのような簡単なアプローチを使用できますか?

4

1 に答える 1

2

ユーザー名をセッション変数に保存しないのはなぜですか? クライアントはランダム ID を保存し、これをサーバーに提示します。次に、サーバーはこれをユーザー名 (サーバーがローカルに持っている) と照合します。サーバーのみがユーザー名を見ることができます。コーディングも非常に簡単で、PHP がランダム ID を作成してクライアントに渡します。さらに、ユーザーが ID を別のものに変更した場合、ログインしている別のユーザーによって使用されている別の ID に出くわす可能性はほとんどありません。

session_start();

//setting the username after they log in
$_SESSION['username'] = $username;

//retrieving the username
//this will work from any file as long as they are on the same server for the same domain
$username = $_SESSION['username'];
于 2012-10-23T04:02:18.437 に答える