XSSの対策

apteryxf 22views 更新:2017年8月16日

ユーザフォームの入力値から、特殊文字をエスケープする。 htmlのformタグのaction属性に、$_SERVER['PHP_SELF’]; を追加し、htmlspecialchars()関数を使用。

...
<body>
        <form id="loginForm" name="loginForm" action="<?= $_SERVER['PHP_SELF']; ?>" action="<?php print($_SERVER['SCRIPT_NAME']); ?>" method="POST">
            <legend>ログインフォーム</legend>
            <label for="username">ユーザ名</label>
            <input type="text" id="username" name="username" value="" />
            <br />
            <label for="password">パスワード</label>
            <input type="password" id="password" name="password" value="" />
            <br />
            <input type="submit" id="login" name="login" value="ログイン" />
        </form>
        <?php if ($logged_in): ?>
            <?php echo "こんにちは".htmlspecialchars($_POST["username"])."さん"?>
        <?php elseif (!empty($_POST["username"])):?>
            <?php echo htmlspecialchars($_POST["username"])."さんが見つかりませんでした。入力情報を確認してください"?>
        <?php endif;?>
    </body>

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません