blog
初学者のひとりごとメモ
カテゴリ: 学習メモ
タグ:PHP
XSS対策ほかPHPの脆弱性対策について
投稿日:2023年9月22日
先生にPHPの課題1を提出。
設定された課題自体はクリアしているが、XSS対策がなされていなかった。
<p><?= htmlspecialchars($name, ENT_QUOTES) ?> 様</p>
サニタイズ大事。
<?php
// ①postで受け取った中身を判定し、空欄でなければそのまま値を代入、空欄であれば""を代入
if (isset($_POST["user-name"])) {
$name = $_POST["user-name"];
} else {
$name = "";
}
//②前のプロセスで変数に代入された値が""であるかを判定、真("")であれば初期表示の文言を、偽であればフォーム入力後の文言を表示
if ($name == "") {
?>
<form action="step2-2.php" method="post">
<p class="step2-work2__title">お名前入力フォーム<br><input type="text" name="user-name"></p>
<input type="submit" value="送信">
</form>
<?php } else { ?>
<p class="step2-work2__title">あなたのお名前</p>
<!-- XSS対策 -->
<p><?= htmlspecialchars($name, ENT_QUOTES) ?> 様</p>
<?php } ?>
POSTパラメータとテキストボックスを使って、送信したデータをすぐ下に表示する、というごく簡易なプログラム。