ネットを探探してたら下記の資料に出会った~。で、気になったのでメモ

安全なWebアプリの作り方2010

下記のようなphpに『?p=1%00<script>alert(document.cookie)</script>』というパラメーターを引数に実行した場合

<html><body>

<?php

$p = $_GET["p"];

if(isset($p) && ereg("^[0-9]+$", $p)){

echo $p;

}else{

echo "error";

}

?>

</body></html>

alertが実行されちゃうんですね、で以下のようにpreg_matchを使ったらerrorと表示された(これは対応策として公開しているわけではありませんのでお気をつけください)

if(isset($p) && preg_match("/^[0-9]+$/", $p)){

今までeregとか使ってこなかったからあれだけど、セキュリティは奥が深く、僕はまだまだ勉強不足です。

最近phpネタばっかだなー

バイナリセーフについて

→ereg系とpreg系の違いはバイナリセーフ云々だとかいうお話