勉強したことのメモ

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

  関連記事

PHPでif文とswitch文

ずっとif文を使っていたけどswitch文の方が速いみたい。 あとずらずら~とi ...

PHPのカレンダー関数

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

コマンドの実行履歴を確認する

SSH接続した際のコマンド実行履歴を確認したかった。 history で確認でき ...

Opauthで「Please change the…」エラー

Opauthを使用中に「Notice: Please change the va ...

imgタグで作成したグラフをjQueryでリアルタイムに動かす

このグラフをリアルタイムプレビューさせる。 ■サンプル http://sampl ...

PHPファイルを解析する時に役立つ関数

初めて見るファイルに対して読み解くのに 役立つ関数が3つあったのでメモ。 get ...

PHPで変数名を動的に変えて使う方法

変数名を動的に変えて使用したかった。 調べてみると可変変数というものがあり、希望 ...

PHPでのファイル関係

ファイルを呼び出したり書き込んだりとかしばしば行うが、 未だに調べることが多いの ...

PHPMailerを使ってメールをSMTP送信する方法(Composer無し)

PHPでメールをSMTP送信したかった。また、レンタルサーバだったのでCompo ...

PHPの文字化け対策

PHPファイルもDBも全部UTF-8で出来たらいいけど、 そうもいかない場合が多 ...