0
email
とhash
というパラメータで構成されたクエリ文字列を持つ検証リンクを作成するとどう思いますか?電子メールとハッシュされたユーザーIDがsalt文字列で確認されています。それは安全ですか?
- メールが登録されたユーザのHTMLエンコードされたプレーンな文字列のメールである、
- ハッシュは、最初のパラメータの文字列を使用してデータベースから選択された固有IDのユーザ番号PHP関数
password_hash
の結果値であります固定された塩ストリング。
password_hashが自動的に塩を追加しても、(私は塩を切り替えることも考えていたが、1は、指定したメールのIDのユーザー数を推測することができ、password_hash
に渡すと、クエリ文字列に有効なハッシュを取得します彼自身。)、私はそれが安全ではないと思う。
私はこのような何か考えた:その後、私は、ユーザーの電子メールにそれを送信します
// the result of SELECT from the database (I use Mysql)
$id = '5';
// fixed salt string
$salt = 'xbrENiBq6kb87WrZYhxS';
$email = urlencode($email);
$key = $id . $salt;
$hash = urlencode(password_hash($key, PASSWORD_DEFAULT));
// the resulted querystring:
$url = "somesite.com/index.php?email=$email&hash=$hash";
を。
私に教えてください。あなたはどう思いますか?どうもありがとう!
あなたは悪い英語のために申し訳ありません。しかし、あなたのコードの周りに「うまく書式を設定する」必要があります。 – Whitecat