$_SERVER['PHP_SELF']に脆弱性あり
2014/05/19
formのaction属性とかページングのリンクとかで、
<form action="<?=$_SERVER['PHP_SELF'];?>">
<a href="<?=$_SERVER['PHP_SELF'];?>?page=<?=$page;?>">link</a>
と使ったりするけど脆弱性があるらしい。
■ソース
<html>
<head>
</head>
<body>
<form action='<?=$_SERVER["PHP_SELF"];?>' method="post">
<input type="button" value="button">
</form>
</body>
</html>
http://aaa.com/index.phpに上記を記述したとして、
「http://aaa.com/index.php/'><script>alert(1);</script>'」
というURLを叩くとブラウザによってはアラートが出てしまう。
どうも$_SERVER["PHP_SELF"]はクエリも取得されてしまうっぽい。
__FILE__か$_SERVER["SCRIPT_NAME"]で使うようにする。
関連記事
HTML / CSSで作成したコンテンツをPDFファイルで出力する方法(TCPDF)
HTML / CSSで作成したコンテンツをPDFファイルで出力させたい。以前mp ...
PHPで一括出力ではなく、ひとつずつ順次に出力する方法
PHPで重たい処理とかをしている際に、途中報告みたいな形で順次出力させる方法のメ ...
PHPとSQLiteで簡易BBSの作成
PHPとSQLiteの練習で簡易掲示板を作ったのでメモ。 目次1 ...
MySQLiでDELETE文
MySQLiでDELETE文 ■ソース $mysqli = new mysqli ...
フォームからCSVファイルをアップロードしてPHPの配列に格納する方法
formからcsvファイルをアップロードさせて、PHPで色々処理したかった。とり ...