セッション追跡により、上記の状況を簡単に回避できます:
http://www.bkjia.com/PHPjc/629703.htmlwww.bkjia.comセッション開始(); $clean = 配列(); $email_pattern = '/^[^@s<>]+@([-a-z0-9]+.)+[a-z]{2,}$/i'; if (preg_match($email_pattern, $_POST['email']))
{
$clean['電子メール'] = $_POST['電子メール']; $user = $_SESSION['ユーザー']
$new_password = md5(uniqid(rand(), TRUE)); if ($_SESSION['検証済み'])
{
/* パスワードを更新 */
mail($clean['email'], '新しいパスワード', $new_password); }
}
?>
http://example.org/reset.php?user=php&email=chris%40example.org
reset.php がユーザーによって提供された情報を信頼する場合、これはセマンティック URL 攻撃の脆弱性です。この場合、システムは php アカウントの新しいパスワードを生成して chris@example.org に送信するため、chris は php アカウントを盗むことに成功します。
true