デモのウェブサイトでハッシュされたパスワードを使用するように切り替えたので、忘れたパスワードをリセットする方法を提供する必要がありました。電子メールによるウェブリンクのパスワードリセットキーを解析します
新しいパスワードを設定するために必要なURL +キーをメールで送信するためのページとPHPセットアップがあります。電子メールには、クリックするURLが含まれています。このリンクをクリックすると、パスワードのリセットページが表示されます。
私が少し問題がある部分は、鍵の情報をURLから引き出しているので、リセットパスワードの送信から生成された鍵と比較するのに使用できます。パスワードを忘れた場合のフォームが送信されると、データベースはキーを正しく挿入します。
私は、リンクからこの情報を抽出するためにparse_urlを使用する必要があると仮定していますが、リンクからキー情報だけを引き出す方法はあまりよく分かりません。
私はPHP_URL_QUERYがURLの正しい部分に私を連れてくれると思います。 PHP_URL_QUERYは私にこのすべてを提供しますので、ここからは私が次に何をすべきかは非常にわからない:
キー=」$ 2yの$ 10 $ q53hrjswTfXnkxg8QeJysezbBi91t4yJcbV9bH3addOSiotr6kE1
私が本当にしたいことは、比較を行うには、このとき:。
」。$ 2Y $ 10 $ q53hrjswTfXnkxg8QeJysezbBi91t4yJcbV9bH3addOSiotr6kE1
ここで私が今持っているコードです....
<?php
require_once '../php/connect.php';
function URL() {
$purl = 'http';
if ($_SERVER["SERVER_PORT"] == "80") {
$purl .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $purl;
}
$key = parse_url($purl, PHP_URL_QUERY)
$qry = mysqli_query($link, "SELECT id FROM planner WHERE rkey = '$key'");
$array = mysqli_fetch_array($qry);
}
}
私はちょうど残りの部分からキー=部分を取り除く方法が必要だと思うが、それはかなり正しいとは思わない。
ご協力いただきまして誠にありがとうございます。
なぜ '$ _GET'を使用しないのですか? – SLaks
だから何かが好きです。 htmlspecialchars($ _ GET ["key"])。 ; ? – airider74
あなたがしていることは間違いありません。それは安全ではありません。このガイドを使用してください:https://paragonie.com/blog/2016/09/untangling-forget-me-knot-secure-account-recovery-made-simple – Edward