the_search_query()関数を用いても特殊文字が文字実体参照に変わらないのはなぜでしょうか?
-
いつもお世話になっております。
下記の質問について、ご存知の方がいらっしゃいましたらご教示をお願いします。—
【質問の主旨】
search.phpやsearchform.phpにおいてthe_search_query()関数を使用しても、
“<“や”>”といった特殊文字が、”<“や”>”といった文字実体参照にならないのはなぜでしょうか?【質問の補足】
1.
現在、個人ブログで使用するテーマでserach.phpとsearchform.phpの作成を行なっています。2.
クロスサイトスクリプト対策として、検索窓に入力された文字列をエスケープするために、the_search_query()関数を用いています。検索窓はWordPressがデフォルトでウィジェットに用意しているものを使っています。3.
ですが、検索窓に<script>alert(1)</script>と入力・検索すると以下のような結果になります。– タイトルのh1タグの出力内容
” <script>alert(1)</script>” に関する記事– searchform.phpに入る文字列の内容
<script>alert(1)</script>– ページの検証を行なった時の<h1>タグの中身
<h1>
<script>alert(1)</script>
</h1>4.
the_search_query()関数の代わりに、echo esc_attr( get_search_query() )と記述しても
上記1~3と同じ結果になります。5.
本質問に関するsearch.phpとsearchform.phpのコード内容はGitHubにおいて公開しています。– search.php
https://github.com/echizenyayota/e-yota/blob/sakura_mokumokukai_20170426/wp-content/themes/mytheme/search.php– searchform.php
https://github.com/echizenyayota/e-yota/blob/sakura_mokumokukai_20170426/wp-content/themes/mytheme/searchform.php【参考ページ】
https://goo.gl/868Y2W—
以上、お忙しいところ誠に恐れ入りますが、よろしくお願い申し上げます。
- トピック「the_search_query()関数を用いても特殊文字が文字実体参照に変わらないのはなぜでしょうか?」には新たに返信することはできません。