これが定番!基本中の基本
クライアントから送られてくる値を利用して表示する場合、
必ずエスケープをおこなってから表示しないと大変なことになります。
クライアントからIDを受け取って表示する場合として
<?php
if (isset($_GET['id'])) {
$id = $_GET['id'];
echo 'id:<input type="text" value="' . $id . '">';
}
?>
http://localhost/blog/sani_1.php?id=aaa%22%3E%3Cinput%20type=%22text%22%20value=%22bbb
をリクエストすると
入力欄が2つになっちゃいます
これは、入力された内容がサニタイズされなかったため、
プログラムと認識されて、このようになってしまいました。
クライアントから送られてくるデータは、
どのようなものが来るか検討もつかないことを
常に考えながらコーディングすることが必要ですね。
0 件のコメント:
コメントを投稿