私は単純なページリダイレクトのために$ _getを使用しています。 ユーザー入力の消毒について学習し始めたばかりなので、以下のコードが大丈夫かどうか疑問に思っていました。この特定のコードに推奨される他の消毒剤はありますか?はいの場合、なぜですか?
以下のコードについてユーザーが値を入力した後、値をリダイレクトする前に許容値のリストと照合していることを確認しました。
$host = $_SERVER['HTTP_HOST'];
$uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
$PAGES = array('a', 'b', 'c', 'd', 'z');
if (empty($_GET['letter'])) {
$_GET['letter']="a";
}
if (!in_array($_GET['letter'], $PAGES)) {
$_GET['letter']="a";
}
$letter=$_GET['letter'];
$goto=$letter .".php";
header("Location: http://$host$uri/$goto");
あなたの返事をありがとう。あなたは悪いことを詳述できますか? – TryHarder
コードの整形、$ PAGESは大文字であってはいけません。$文字変数は無用です。おそらく$ gotoでも "a"と ".php"で一重引用符を使うことができます。 – dotoree
コードの整形は不正なコードの兆候ではありませんが、整頓されている可能性があります。 –