$_SERVER['PHP_SELF']のXSS脆弱性について

$_SERVER['PHP_SELF']はそのままだと危険なので、
$_SERVER['SCRIPT_NAME']が良いといろんなサイトで言われていますが、
htmlspecialcharsでエスケープすると良いとも言われています。

$_SERVER['SCRIPT_NAME']はCGI版では利用できないということから下記のコードを書いてみました。
また、$_GETパラメーターを継承させたいと思い、そのコードも入れています。
何かご教授いただければと思います。
-----------------------------------------------------------------
>||
<?php
////////////////////////////////////////////////
function h($text, $charset = null) {

if (is_array($text)) {

return array_map('h', $text);

}

if (empty($charset)) {

$charset = 'UTF-8';

}

return htmlspecialchars($text, ENT_QUOTES, $charset);

}
/////////////////////////////////////////////////

$get = '';
foreach($_GET as $key => $value){
if(!$get){
$get .= '?';
}else{
$get .= '&';
}
$get .= h($key) . '=' . h($value);
}

echo $_SERVER['SCRIPT_NAME'] . $get;
echo '<br />';
echo h($_SERVER['PHP_SELF']) . $get;
?>
||<

回答の条件
  • 1人2回まで
  • 登録:2008/12/15 21:56:10
  • 終了:2008/12/22 22:00:03

回答(0件)

回答はまだありません

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません