teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

検証コードについて追記

2017/06/30 02:49

投稿

miyahan
miyahan

スコア3095

answer CHANGED
@@ -2,4 +2,10 @@
2
2
 
3
3
  「そのまま表示」というのがウェブブラウザの画面で、`ようこそ<田中>さん` みたいに表示されるという事でしょうか?
4
4
 
5
- ならばエスケープはむしろ成功していますよね? HTMLの記号である "<" がHTMLとして処理されず**ふつうの文字**として表示されているわけですから。
5
+ ならばエスケープはむしろ成功していますよね? HTMLの記号である "<" がHTMLとして処理されず**ふつうの文字**として表示されているわけですから。
6
+
7
+ ----
8
+
9
+ ためしに、フォームのメソッドを `post` から `get` にし、PHPのコードも `$_POST` から `$_GET` に変更し、フォームにエスケープされるべき文字列、例えば `<script>alert("***");</script>` と入力し送信してみましょう。
10
+
11
+ ブラウザ画面上では、入力されたとおり `ようこそ<script>alert("***");</script> さん` と表示されていますが、ここでソースを表示させてみましょう。`<p>ようこそ&lt;script&gt;alert(&quot;***&quot;);&lt;/script&gt; さん</p>` ときちんと特殊な記号がエスケープされているのが確認できます。