XSS対策前は以下コードのように、
$resに値を代入して、htmlに出力していました。
XSS対策で、出力時にhtmlエスケープ処理をしたいのですが、
今回のようにループ処理がある場合、
どのような方法が良いのか分からず教えて頂ければ幸いです。
PHP
1<?php 2function h($str) { 3return htmlspecialchars($str, ENT_QUOTES, 'UTF-8'); 4}//XSS対策で追加 5 6$res = ""; 7$sql = "SELECT * FROM table1 WHERE Cusid=?"; 8$sth = $dbh -> prepare($sql); 9$array = array($_SESSION['cusid']); 10$sth -> execute($array); 11$result = $sth->fetchall(PDO::FETCH_ASSOC); 12$sth = null; 13$res .= "<table>"; 14foreach($result as $row){ 15$title = $row['Title']; 16$price = $row['Price']; 17$res .= <<<eof 18<tr><td> 19<form method='post'> 20<input type='text' name='title' value='{$title}'> 21<input type='number' name='price' value='{$price}'> 22</tr></td> 23eof; 24} 25$res .= "</table>"; 26} 27?> 28 29<section class="section-contents"> 30<div class="section-inner"> 31<?=$res?> 32</div> 33</section>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2022/01/08 01:24
2022/01/08 02:09 編集
2022/01/08 02:10
退会済みユーザー
2022/01/08 02:51