0

そのすべては、言語切り替えを有効にするために使用したリダイレクト機能から始まります。私はheader('Location: ' . $_SERVER['HTTP_REFERER']);、ユーザーを以前のページにリダイレクトするために使用しますが、これは javascript を介してリダイレクトされますwindow.location.href

私はもう試した

$_SERVER['HTTP_REFERER']=');';
header('Location: ' . $_SERVER['HTTP_REFERER']);

エラーページにリダイレクトされましたhttp://localhost/);

ただし、漏れにするためのトリックがあるかもしれないことは知っているので、これに注入する方法はありますか?コードに脆弱性がない場合は、ユーザーが http_referer を変更してエラー ページに送信してもかまいません。


アップデート

私が心配しているのは、ユーザーが次のようなことができるかどうかです

$_SERVER['HTTP_REFERER']=')';
$mysqli->query($query);
header('Location: http://localhost ');

に似ている

$_SERVER['HTTP_REFERER']=");$mysqli->query($query);header('Location: http://localhost ');"; 以前のコードでは実行できませんが、実際に脆弱かどうかは誰にもわかりません。

4

1 に答える 1

0

はい、$_SERVER['HTTP_REFERER']入力によって提供されるものであれば何でもかまいません (例: cURL 呼び出しによる変更、またはブラウザーのプラグイン/アドオン/拡張機能による変更など)。

$_SERVER['HTTP_REFERER']したがって、あなたのようにページ フローなどの重要なタスクを実行することに依存するべきではありません。

PHP documentationでは、次のように述べています。

ユーザー エージェントを現在のページに参​​照させたページ (存在する場合) のアドレス。これは、ユーザー エージェントによって設定されます。すべてのユーザー エージェントがこれを設定するわけではなく、機能として HTTP_REFERER を変更する機能を提供するユーザー エージェントもあります。要するに、本当に信用できない。

于 2013-09-16T02:16:50.073 に答える