前提
いつもお世話になっております。
今回はphpのサニタイズについてです。
課題でお問合せフォームを作成しており、それに合わせxss対策に「htmlspecialchars」を別ファイルに作成し、それを「require」を使い別のファイルへ読み込むようにプログラムを作成しているのですが、お問合せフォームに「htmlspecialchars」をあて「<script>alert(2)</script>」というように試しでJavaScriptを読み込ませるのですが、読み込ませると文字が文字化けしてしまいます。
サイトや書籍を確認すると、文字列として認識されるとのことで、「<script>alert(2)</script>」と文字化けせずに入力されているようなのですが、何度試してもうまくいきません。
コードの文字化けがうまくいっていないため、課題も進まず困っています
何が原因で、どういう対策をすればいいのか、わかる方は教えていただきたいです。
それとも、これでいいのでしょうか?
実現したいこと
<script>alert(2)</script>を文字化けさせず、文字列として入力後表示させたい。該当のソースコード
htmlspecialchars.php
1<?php 2 3 // 悪意のある操作の防止 4 function h($value){ 5 return htmlspecialchars($value, ENT_QUOTES, 'UTF-8'); 6 } 7?>
conf.php(先頭に「require
1 <textarea name="body" id="body" class="inquiry_main"><?php echo h($form['body']); ?></textarea> 2 <span style="color:red; font-size:10px;"> 3 <?php if(isset($error['body']) && $error['body'] === 'blank'): ?> 4 *お問合せ内容は必須です。 5 <?php endif; ?> 6 </span>
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。