2019年8月23日金曜日

セキュリティー対策(10)

Script Insertion(インジェクション攻撃)
これが定番!基本中の基本

クライアントから送られてくる値を利用して表示する場合、
必ずエスケープをおこなってから表示しないと大変なことになります。

クライアントから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つになっちゃいます
これは、入力された内容がサニタイズされなかったため、
プログラムと認識されて、このようになってしまいました。
クライアントから送られてくるデータは、
どのようなものが来るか検討もつかないことを
常に考えながらコーディングすることが必要ですね。

https://www.filetalk.info/index.html

0 件のコメント:

コメントを投稿