追跡ソリューション(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 {mlaut,10.0,100045;nice jacket,20.00,29887';
</script>
セミコロンは、追跡ソリューションによってアイテム区切り文字として評価されます。
追跡ソリューションのサポートにより、値をurlエンコードするように指示されました。これは機能しますか?URLエンコードはxss-atacksを止めないと思います。最初にurl-encodeとhtml-encodeを実行し、次にjavascript-encodeを実行しても大丈夫ですか?