13,192
回編集
(→概要) |
|||
| 29行目: | 29行目: | ||
== htmlspecialchars関数の使用 == | == htmlspecialchars関数の使用 == | ||
htmlspecialchars関数は、<u>反射型XSS</u>と<u>格納型XSS</u>の防止に効果的である。<br> | |||
これらのXSS攻撃は、HTMLの出力時にスクリプトが実行される仕組みを利用するためである。<br> | |||
<br> | |||
ただし、htmlspecialchars関数を使用する場合も、第2引数に<code>ENT_QUOTES</code>を指定して、文字エンコーディングを明示的に指定することが必要である。<br> | |||
これにより、シングルクォートとダブルクォートの両方が適切にエスケープされる。<br> | |||
<br> | |||
HTMLコンテンツを出力する場合は、htmlspecialchars関数を使用する。<br> | HTMLコンテンツを出力する場合は、htmlspecialchars関数を使用する。<br> | ||
例えば、データベースに<u>"<script>alert('攻撃')</script>"</u>のような悪意のあるスクリプトが格納されている場合、<br> | |||
例えば、データベースに<u>"<script>alert('攻撃')</script>"</u> | htmlspecialchars関数を使用しないと、そのスクリプトがWebブラウザで実行される可能性がある。<br> | ||
<br> | <br> | ||
htmlspecialchars関数を使用する場合、特殊文字がHTMLエンティティに変換 (例: "<" -> "<") されて、スクリプトが実行されなくなる。<br> | htmlspecialchars関数を使用する場合、特殊文字がHTMLエンティティに変換 (例: "<" -> "<") されて、スクリプトが実行されなくなる。<br> | ||