2017-06-28 10 views
1

この動作はなぜ起こるか多分誰もが知っている、私は行くことは新しいMと私は私の心は非常に簡単なもので捕まってしまったので、私はあなたの助けを求める:ゴー - 異なる振る舞い

を私は、テンプレート内のURLオブジェクトのクエリparams文字列を出力したいと思いますが、明らかに "?" charを変数の前に置くと、(全体の)出力はURLエンコードされます。 goのテンプレートでは疑問符は特別な意味を持っていますか?行く遊び場で

代わりののparam1 = VALUE1 &値2 = PARAM2、出力があるのparam1%3dvalue1%26value2%3dparam2

Example

答えて

1

html/templateパッケージの囲碁ドキュメントは(動作を説明https://golang.org/pkg/html/template/):

このパッケージで使用されているセキュリティモデルは、そのテンプレート作成者は信頼され、Executeのデータパラメータは信頼されません。詳細は以下のとおりです。

これについての事は、あなたが本当にあなたが行くがあなたのテンプレートに、このセキュリティ動作を適用する必要はありません約2倍なぜ考えなければならないということです。

その後、あなたは文字列は、文字列のtemplate.URL intead使用脱出したくない本当に確信している場合:https://play.golang.org/p/kfv2tH6WDG

+0

私はこれを見つけたのhttps://golang.org/pkg/html/template/# hdr-Contexts、私はこれが理由だと思いますが、デフォルトで "| urlquery"フィルタを適用しないように指示するにはどうすればよいですか? –

+0

"これについては、Goにテンプレートにこのセキュリティ動作を適用させたくない理由について2度考えるべきだということです。私のケースでは、URL構造体のドキュメント状態であるRawQueryは既に暗号化されているので、安全です。 –

+1

次に、html/templateの代わりにプログラムでtext/templateを使用するだけです。https://play.golang.org/p/_f1chjA3M6 – Ravi

関連する問題