テンプレートでの予期しない HTML エスケープ
特定のテンプレート シナリオでは、開発者は < という問題に遭遇する可能性があります。文字は不必要に < にエスケープされますが、> は不必要にエスケープされます。文字はそのまま残ります。この動作は、特に
説明
このエスケープの理由は、テンプレート処理に使用される基礎となるライブラリにあります。 html/template は HTML 出力を生成するように設計されており、潜在的なコード インジェクションの脆弱性に対する自動エスケープを提供します。 <> と解釈します。そして>
残念ながら、このエスケープはコンテキスト固有であり、HTML コンテキストにのみ適用されます。提供されたテンプレートは HTML を生成することを目的としていないため、エスケープ プロセスは発生しません。
解決策
この問題を解決するには、HTML の代わりにテキスト/テンプレートを使用することを検討してください。 Readme やライセンスなどのファイルを生成するための /template。 text/template は HTML 固有のエスケープを実行しないため、< のような文字が許可されます。元の形を保つこと。このライブラリに切り替えることにより、
以上が< が < にエスケープされるのはなぜですか?私のテンプレートで?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。