PHPのXSS対策

ログインページなどにおいてユーザー名などに悪意のあるユーザーが

<script>alert('XSS');</script>

のようなスクリプトを入力されたときにXSSを防ぐための方法にhtmlspecialchars関数を使う方法があるが、この関数は長いため、実用的にするために、関数化する。


function h($str) { return htmlspecialchars($str, ENT_QUOTES, 'UTF-8'); }

その後ログインページなどでスクリプトを入力され、実行されたタイミングでこの関数を使いたいので、 html文中のphpを変更する。

<?php if ($logged_in): ?>
        <?php echo h("こんにちは".$_POST["username"]."さん")?>
        <?php elseif (!empty ($_POST["username"])):?>
        <?php echo h($_POST["username"]."さんが見つかりませんでした。入力情報を確認してください")?>
        <?php endif;?>

これでスクリプトを入力されても、文字列として認識する。