私はクッキーに慣れていません(実際には一般的にはPHPです)。私が取り組んでいるウェブサイトのための「私を覚えてください」システムを実装したいと思います。ここや他のウェブサイトの多くの記事を読んだ後、私はパスワードやユーザーからの他の入力をクッキーに入れてはいけないことを理解します。 1つの解決策は、データベーステーブルのremember_key
というユーザーに対して、「remember me」チェックボックスをオンにしてユーザーがサインインするたびに再生成されることでした。また、ユーザーがページを再び訪問するとき、コードはremember_key
をdbから選択し、がremember_key
と同じであるかどうかを確認します(ユーザーがログインしている場合)。しかし、これを実装する方法がわかりません。私は思うようにいくつかのコードを書いていますが、私がすでに持っているものが正しいかどうか、またどのように進めるかを確認するのに役立つことができます。 (?またはその値):これは私が今持っているものであるクッキーを使用しているユーザーを記憶して検証する
function rememberUser($id) {
$remember = md5(uniqid(mt_rand(),true));
$stmt = $mysqli->prepare("UPDATE USERS SET USER_REMEMBER_KEY = ? WHERE USER_ID = ?");
$stmt->bind_param('si', $remember, $id);
$stmt->execute();
setcookie("remember", $remember, time()+60*60*24*30, "/", "www.someName.com", false, true);
}
function isValidUser($id) {
$stmt = $mysqli->prepare("SELECT * FROM USERS WHERE USER_REMEMBER_KEY = ? AND USER_ID = ?");
$stmt->bind_param('si', $_COOKIE['remember'], $id);
$stmt->execute();
$stmt->store_result();
$count = $stmt->num_rows;
if($count == 1) {
return true;
}
else {
return false;
}
}
function forgetUser($id) { // not sure about this method at all!
setcookie("remember", '', time()-3600, "/", "www.someName.com", false, true);
}
forgetUser()
を削除しますが、どのようにそれはその特定の人のためのクッキーであることを知っていますか?コメントや提案/ヒント/ヒントなど、私が今使っているコードと、それをどのように改良できるのかをお伝えしたいと思います。
私は既にセッションについて知っていますが、使いやすく、より安全です(私は推測します)が、FBのように長い時間ログインしておく必要があります。それ。私はセッションを長生きしても削除が保証されるとは聞きませんでした。
セキュリティについて:私のウェブサイトはスーパースーパーセキュアである必要はありません。このトークンで十分でしょうか?
かなりよく考えられて見えます。 PHPセッション[PHP](http://www.php.net/manual/en/function.session-start.php)を使うこともできます。また、セッション固有のハッシュも保存されています。 – Bradmage
しかし、私はすでにセッションが私のために十分に長い間、削除されていないまま滞在していると説明しています:) – Loolooii
私はちょうど下部にあるテキストを見ていました、そしてそれを追加したばかりか、私の目を開いたままにする:)申し訳ありません。 – Bradmage