クロスサイトスクリプティング(XSS)攻撃を回避するための出力のサニタイズ
Twigテンプレートを使用するTwigテーマエンジンは、デフォルトですべてを自動エスケープするようになりました。つまり、Twigテンプレートから印刷されたすべての文字列(たとえば、の間のもの{{ }}
)は、フィルターが使用されていない場合、自動的にサニタイズされます。
Drupalで使用可能なTwigフィルターについては、フィルター-Twigテンプレートの変数の変更を参照してください。
Twigの自動エスケープを利用するには(そして安全なマークアップがエスケープされないようにするため)、理想的にはすべてのHTMLがTwigテンプレートから出力される必要があります。
API関数安全な翻訳可能な文字列を作成するには、t()および\Drupal::translation()->formatPlural()
with @
または%
プレースホルダーを使用します。詳細について
は、Drupal 8のコードテキスト変換APIを参照してください。
t()、Html :: escape()、Xss :: filter()、またはXss :: filterAdmin()によってサニタイズされた文字列は、Rendererを介してレンダー配列から作成されたマークアップ文字列と同様に、自動的に安全とマークされます。
テキストをサニタイズすることもできますが、関連付けられたテキスト形式のテキスト領域などのコンテキストを除いて、テーマまたはモジュールでcheck_markupを使用することはほとんど正しくありません。