ホームページ > バックエンド開発 > Golang > < が < にエスケープされるのはなぜですか?私のテンプレートで?

< が < にエスケープされるのはなぜですか?私のテンプレートで?

DDD
リリース: 2024-11-03 11:16:29
オリジナル
902 人が閲覧しました

Why is < Escaping to < in My Template?

テンプレートでの予期しない HTML エスケープ

特定のテンプレート シナリオでは、開発者は < という問題に遭遇する可能性があります。文字は不必要に < にエスケープされますが、> は不必要にエスケープされます。文字はそのまま残ります。この動作は、特に のような値を挿入しようとする場合に不可解になる可能性があります。

説明

このエスケープの理由は、テンプレート処理に使用される基礎となるライブラリにあります。 html/template は HTML 出力を生成するように設計されており、潜在的なコード インジェクションの脆弱性に対する自動エスケープを提供します。 <> と解釈します。そして>

残念ながら、このエスケープはコンテキスト固有であり、HTML コンテキストにのみ適用されます。提供されたテンプレートは HTML を生成することを目的としていないため、エスケープ プロセスは発生しません。

解決策

この問題を解決するには、HTML の代わりにテキスト/テン​​プレートを使用することを検討してください。 Readme やライセンスなどのファイルを生成するための /template。 text/template は HTML 固有のエスケープを実行しないため、< のような文字が許可されます。元の形を保つこと。このライブラリに切り替えることにより、 の予想される出力が変更されます。達成されるはずです。

">

以上が< が < にエスケープされるのはなぜですか?私のテンプレートで?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート