私は現在のログインシステムを使いますが、成功したログインの後に単にheader("Location: ".$_POST['url']);
を使ってリダイレクトが実行されます。 $_POST['url']
自体は、フォームがロードされるときに隠しフィールドの$_GET['url']
パラメータから設定されます。
ご覧のとおり、ユーザーをハイジャックし、フィッシングサイトにログインする可能性があるという明らかな方法があります。
$_POST['url']
からハイジャックを防ぐ簡単で簡単な方法はありますか?思考の最初のトレイルはbasename()
のようなものですが、目的のページがディレクトリ内にあることがあるので、これはうまくいかないでしょう。
ログインページのリダイレクト先をPOSTまたはGETで判断するのはなぜですか? –
指定された元の場所です。たとえば、upload.phpを試してみると、login.php?url = upload.phpにリダイレクトされます。私はこれを設計しませんでしたが、私はそれを確保する必要があります:) – Dunhamzzz