package
1.23.0
Repository: https://github.com/shogo82148/std.git
Documentation: pkg.go.dev

# Packages

templateパッケージ(html/template)は、コードインジェクションに対して安全なHTML出力を生成するための データ駆動型テンプレートを実装します。それは [text/template] と同じインターフェースを提供し、出力がHTMLの場合は [text/template] の代わりに使用すべきです。 ここでのドキュメンテーションは、パッケージのセキュリティ機能に焦点を当てています。 テンプレート自体のプログラミングについての情報は、[text/template] のドキュメンテーションを参照してください。 # Introduction このパッケージは[text/template]をラップして、そのテンプレートAPIを共有して HTMLテンプレートを安全に解析し実行できます。 tmpl, err := template.New("name").Parse(...) // エラーチェックは省略 err = tmpl.Execute(out, data) 成功した場合、tmplは今後、インジェクションに対して安全になります。それ以外の場合、errはErrorCodeのドキュメントで定義されたエラーです。 HTMLテンプレートは、データ値をHTMLドキュメントに安全に埋め込むためにエンコードするべきプレーンテキストとして扱います。エスケープは文脈に依存するため、JavaScript、CSS、URIの文脈内にアクションが現れることがあります。 このパッケージが使用するセキュリティモデルは、テンプレートの作者が信頼できると仮定し、 一方でExecuteのデータパラメータは信頼できないと仮定します。詳細は以下に提供されています。 例 import "text/template" ..

# Functions

EscapeStringは、"<"のような特殊文字を"&lt;"にエスケープします。 それは、<, >, &, ' および " の5つの文字だけをエスケープします。 常にUnescapeString(EscapeString(s)) == sが成り立ちますが、その逆は 常に成り立つわけではありません。.
UnescapeStringは、"&lt;"のようなエンティティを"<"にアンエスケープします。 それはEscapeStringがエスケープするよりも広範なエンティティをアンエスケープします。 例えば、"&aacute;"は"á"に、"&#225;"も"&#xE1;"も"á"にアンエスケープします。 常にUnescapeString(EscapeString(s)) == sが成り立ちますが、その逆は 常に成り立つわけではありません。.