0

追跡ソリューション(etracker)の一部としてhtmlページにレンダリングされるスクリプトがあります。

これは次のようなものです。

<script>
var et_cart= 'nice shoes,10.0,100045;nice jacket,20.00,29887';
</script>

これは、私が制御していないJavaScriptによって追跡ソリューションのサーバーに送信されます。2点になります。アイテムは、ソース内でセミコロンで区切られています(「100045」の後)。

レンダリングされる値をHtml(エンコードおよびJavascript)でエンコードする必要があることは明らかです。最初にHTMLエンコードし、その後一重引用符を削除します。

これは機能しますが、フランス語とドイツ語の特殊文字、たとえばウムラウト(ü、ä...)に問題があります。{のようなものをレンダリングします。記事としてlarsümlautを使用した場合のスクリプトの出力は次のとおりです。

<script>
var et_cart= 'lars &#123;mlaut,10.0,100045;nice jacket,20.00,29887';
</script>

セミコロンは、追跡ソリューションによってアイテム区切り文字として評価されます。

追跡ソリューションのサポートにより、値をurlエンコードするように指示されました。これは機能しますか?URLエンコードはxss-atacksを止めないと思います。最初にurl-encodeとhtml-encodeを実行し、次にjavascript-encodeを実行しても大丈夫ですか?

4

1 に答える 1

0

値は、クライアントに送信するために URL エンコードするだけで済みます。情報がクライアントによって表示されている場合、あなたの攻撃ではなく、xss 攻撃から自分自身を保護していることを確認するのはクライアントの責任です。

<script>
var et_cart= 'lars+%FCmlaut%2C10.0%2C100045%3Bnice+jacket%2C20.00%2C29887';
</script>
于 2010-07-28T09:33:18.170 に答える