ホームページ >バックエンド開発 >Golang >html/template は \'<\' をエスケープするのに \'>\' はエスケープしないのはなぜですか?

html/template は \'<\' をエスケープするのに \'>\' はエスケープしないのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-04 05:33:29841ブラウズ

Why does html/template escape 」? 「/」? " />

HTML/テンプレートのエスケープについて

HTML/テンプレートが「>」のままで「<」を「<」に不必要にエスケープするという問題が発生しました。 ;" untouched。この動作を理解するために、まず HTML/テンプレートのエスケープの目的を調べてみましょう。

安全のための HTML エスケープ

HTML/テンプレートは、潜在的にコード インジェクションの脆弱性を防ぐための危険な文字。このエスケープはコンテキスト依存であり、HTML、CSS、URI などのさまざまなコンテキストに埋め込まれたときにデータが適切にエンコードされるようにします。

HTML の html/template出力のみ

ただし、html/template は HTML 出力を生成するために特別に設計されていることに注意することが重要です。その主な目的は、ユーザーが指定したデータを HTML ドキュメントに埋め込む安全な手段を提供することです。

非 HTML 出力にはテキスト/テン​​プレートを使用する

必要な出力が HTML でない場合は、html/テンプレート、テキスト/テン​​プレートとは異なり、代わりにテキスト/テン​​プレートを使用する必要があります。エスケープを実行しないため、プレーン テキストまたはカスタム ファイル形式を生成できます。

結論

この例では、テンプレートは非 HTML 形式のファイルを生成することを目的としています。 Readme やライセンスなどのファイル。したがって、「<」の不必要なエンコードを避けるために、文字をエスケープしないテキスト/テン​​プレートを使用する必要があります。出力形式に基づいて適切なテンプレート パッケージを選択することで、正しい動作を保証し、予期しないエスケープの問題を回避できます。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。