web-dev-qa-db-ja.com

ハードコーディングされたプレーンテキストをエスケープする必要がありますか?

私はUnderscoresスターターテーマで遊び始め、プレーンテキストでもesc_html_e()が使われていることに気付きました:

<a class="skip-link" href="#content"><?php esc_html_e( 'Skip to content', '_s' ); ?></a>

そのようにそれをエスケープしないのはセキュリティ上のリスクですか?

<a class="skip-link" href="#content">Skip to content</a>

...それとも翻訳のためだけにあるのでしょうか。

ありがとう。

3
DesVal

ここでのセキュリティ上のリスクは、プレーンテキストではなく翻訳に関するものです。あなたは esc_html_e がHTMLをエスケープするための関数であるだけでなく、ローカライズ(l10n)のための関数でもあることに注意するべきです。すなわち他の人がこの文字列を翻訳することはできますが、その翻訳がどうなるかわかりません。誰かが文字列を翻訳してリンクや悪意のあるHTMLを追加する可能性があります。したがって、この場合はHTMLをエスケープするほうが良いでしょう。

4
obstschale