2010-07-28 5 views
0

У меня есть сценарий, который отображается на странице html как часть решения для отслеживания (etracker).Как кодировать значение, которое отображается на странице и, наконец, используется в URL?

Это что-то вроде этого:

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

Это будет передаваться на сервер решения для отслеживания с помощью какой-то JavaScript, что я не в силах контролировать. Это закончится как 2 предмета. Элементы разделяются точкой с запятой в источнике (после «100045»).

Мне, очевидно, нужно кодировать Html-код и кодировать Javascript значения, которые будут отображаться. Я сначала Html-encode и после этого удаляю одинарные кавычки.

Это работает, но у меня есть проблема со специальными символами на французском и немецком языках, например. умлаут (ü, ä ...). Они делают что-то вроде {. Выход сценария при использовании Lars Умляута в качестве статьи:

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

точки с запятой оцениваются как разделитель элемента с помощью раствора отслеживания.

Поддержка решения для отслеживания показала мне, что URL-код кодирует значения. Может ли это работать? Я предполагаю, что URL-кодирование не останавливает xss-атак. Это нормально для первого url-encode и html-encode, затем javascript-encode после него?

ответ

0

Значения должны быть закодированы только для передачи клиенту. Если информация отображается клиентом, это их обязанность гарантировать, что они защищают себя от атак xss, а не от ваших.

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

 Смежные вопросы

  • Нет связанных вопросов^_^