0

ログイン、パスワードとユーザー名の保存について読んでいます。パスワードを Cookie に保存することは大問題です。そのため、ユーザー名のみを Cookie に保存することにしました。これで問題ないと思います。簡単にアクセスして「Remember Me」オプションを処理できるように、Cookie に保存しました。しかし、ユーザーを識別したい場合、パスワードはどうなりますかSELECT * FROM databse WHERE username='$_COOKIE[]' AND password=''

SESSIONのことを考えていました。パスワードをセッションに保存できますが、安全ではありませんが問題ありません。しかし問題は、ユーザーがブラウザを閉じて再度開いたときです。彼らはログインしたままになりますが、セッションはなくなります。そのため、SESSION[pass] が設定されているかどうかを確認する必要があるたびに、データベースから選択して設定します。

それが私の解決策です。誰かがもっと適切な解決策を提案できますか?

事実、超安全なシステムは存在せず、誰かが本当に侵入しようと思えば成功します。

4

2 に答える 2

3

remember_tokens次のような構造のテーブルを呼び出すことができます。

  id         |         user_id              |        created
------------------------------------------------------------------------
f129ea9c     |            1                 |     2-3-2013 12:31:51
e9ac8aa0     |            2                 |     2-4-2013 08:21:13

idUUIDまたはランダムに生成された文字列など、いくつかの一意の ID があります。user_id記憶するユーザーの ID です。createdレコードが作成されたときです(したがって、X時間後にユーザーをログアウトできます)。

ここで、ユーザーが正常にログインして覚えておきたい場合は、一意のidと彼のuser_idto を持つ新しいレコードを追加しremember_tokensます。また、挿入したばかりsetcookie()のランダムに生成された Cookie を含む新しい Cookie を作成します。id

これで、ユーザーが次にサイトをリクエストしたときに、rememberCookie が保存されていることがわかります。そのレコードをフェッチし、有効期限が切れていないかどうかを確認し、user_id列を使用して適切なユーザーにログインします。このようにして、機密情報を Cookie に保存することはありません。

お役に立てれば

于 2013-03-29T10:23:44.473 に答える
1

以下に、より詳細な回答を示します。

この質問への回答には、いくつかの優れたリソースがまとめられています:ウェブサイト認証の決定的なガイド

于 2013-03-29T10:27:04.190 に答える