У меня есть скрипт, который отображается на html-странице как часть решения для отслеживания (etracker).
Это примерно так:
<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-атаки. Можно ли сначала кодировать URL и кодировать html, а затем кодировать javascript?