2010-07-28 19 views
0

J'ai un script qui est rendu à une page html dans le cadre d'une solution de suivi (etracker).Comment encoder une valeur qui est rendue à la page et finalement utilisée dans l'URL?

Il est quelque chose comme ceci:

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

Ce sera transmis au serveur de la solution de suivi par certains javascript que je ne contrôle pas. Il finira comme 2 articles. Les éléments sont séparés par un point-virgule dans la source (après '100045').

J'ai évidemment besoin de coder en HTML et de coder en Javascript les valeurs qui seront rendues. Je commence par coder en Html et ensuite je supprime les guillemets simples.

Cela fonctionne, mais j'ai un problème avec les caractères spéciaux en français et en allemand, par ex. tréma (ü, ä ...). Ils rendent quelque chose comme {. La sortie du script lors de l'utilisation lars ümlaut que l'article est:

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

Le point-virgule est évalué comme étant un séparateur d'article par la solution de suivi.

La prise en charge de la solution de suivi m'a indiqué d'encoder url les valeurs. Cela peut-il fonctionner? Je suppose que l'encodage d'URL n'arrête aucun xss-atacks. Est-il correct d'encoder d'abord url et encoder html, puis javascript-encoder après?

Répondre

0

Les valeurs doivent uniquement être codées en URL pour être transmises au client. Si les informations sont affichées par le client, il est de leur responsabilité de s'assurer qu'elles se protègent contre les attaques xss, pas les vôtres.

<script> 
var et_cart= 'lars+%FCmlaut%2C10.0%2C100045%3Bnice+jacket%2C20.00%2C29887'; 
</script>