勉強したことのメモ

webプログラマ見習いが勉強したことのメモ。

$_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"]で使うようにする。

■参考サイト
http://d.hatena.ne.jp/geek-it/20120229/p1

 - PHP

  関連記事

images
PHPでゼロパディング

予め桁数を決めておいて、桁数未満の場合は0で埋めたい場合の処理。 str_pad ...

images
google map apiとPHPを組み合わせて複数マーカーとウィンドウを連携させる

やりたかった事は、 mysqlから経度緯度、マーカー名、マーカーIDを持ってきて ...

images
PHPのログイン認証をPEAR::Authで実装する

PHPのシステムである程度ちゃんとしたログインシステムが必要になった。今までログ ...

images
PHPの条件式でまとめて評価

PHPのソースで、 if( !($hoge || $fuga || $foo) ...

images
PHPのカレンダー関数

カレンダー関数で使えるかもしれないものをメモ。 ■cal_days_in_mon ...

images
Fatal error: Cannot redeclare 関数名のエラー

自作関数の名前が被っている場合に出現するエラー。 ↓みたいに書いているとエラー。 ...

images
joinとimplode

PHPで配列を結合する時に使う関数。joinとimplode。 元々はなんかのマ ...

images
curlでPOSTデータ送信

ここで使ったcurlだけど補足とか諸々。 ■curlでPOST 並列処理する際に ...

images
画像をURLから取得して異なるサーバーにアップロード

■やりたかった事 ・画像があるサーバーはaaaサーバー ・アップロード先はbbb ...

images
PHPでフォームとかの数値チェック

フォームとかで届いた値が整数値で0以上かどうか 調べる際に、なるほど、と思ったソ ...