私の Web サイトには、ヘッダー、フッター、およびメイン コンテンツがあります。ユーザーがログインしていない場合、メインのコンテンツでは、実際のコンテンツの代わりにログイン フォームが表示される場合があります。
そのログイン フォーム$_SERVER['REQUEST_URI']
で、セッション変数に を書き込みます$_SESSION['redirect']
。
ユーザーをログインさせる私のログインフォームポストハンドラーは、このリンクへのログインに成功した後にユーザーを送信しますheader('location: http://myserver.com'.$_SESSION['redirect']);
したがって、myserver.com/somesite.php?somevar=10
ログインしている場合は適切なサイトが表示されます。それ以外の場合はログインフォームが表示されますが、ブラウザのアドレスバーの URL にはまだmyserver.com/somesite.php?somevar=10
「資格情報を入力すると にリダイレクトされます」と表示されますmyserver.com/somesite.php?somevar=10
。次に、ログインしているので、完全に表示されます。
REQUEST_URI
フォーム アクションまたはリンクの href として値を使用しません。
また、$_GET
使用する変数は最初に正規表現と一致するかどうかを確認します (通常、変数はsha1
文字列またはその他の方法でランダムに生成された数字と文字のみの文字列であり、特別な文字は含まれません)。 db クエリで使用されます。
私の質問は、セキュリティ上の懸念があるかどうかです。これを悪用する方法、URL に悪意のあるものを入力してから、たとえば別のユーザーに送信する方法はありますか? プロセスのどこかで何かをエスケープする必要がありますか?