アボガドチーズバーガー
前回はPHPの正規表現としてpreg_match関数を使ってSQLインジェクション対策の方法をやりました。(日本語おかしいかな。。。。)
今回はタグの無効化に関してやりたいと思います。
<form action="hoge.php" method="post">文字列を書き込んでください。
<input type="text" name="a">
<input type="submit" value="送信します">
hoge.php
< ?php $a = $_POST ("a"); print $a; ?>
上記の2つをどこかのサーバに保存し試してみると、フォームに入れた内容が返ってきます。
このときに<body bgcolor=”black”>をフォームに入れて送ったらどうなるでしょうか?
結果としては黒い画面が表示されます。
これはフォームとして入れたタグをphp側が認識してしまっているためです。
これを回避するためにhtmlspecialcharsという関数を使用します。
んでは、hoge.phpの修正版です。
hoge2.php
< ?php
$a = htmlspecialchars($_POST("a"));
?>
postで受け取る部分にhtmlspecialchars関数をかましてあげるだけ。
簡単ですね。
< 参照>
kichon’s blog
Powered by WordPress