我有一个脚本,作为跟踪解决方案(etracker)的一部分,渲染到一个html页面。
它是这样的:
<script>
var et_cart= 'nice shoes,10.0,100045;nice jacket,20.00,29887';
</script>这将通过一些我不能控制的javascript传输到跟踪解决方案的服务器。它将作为2个项目结束。这些项目在源代码中用分号分隔(在‘100045’之后)。
我显然需要对将要呈现的值进行Html编码和Javascript编码。我首先对Html进行编码,然后删除单引号。
这是可行的,但我对法语和德语中的特殊字符有问题,例如umlaut (ü,ä...)。它们呈现类似于{.当使用larsümlaut作为文章时,脚本的输出为:
<script>
var et_cart= 'lars {mlaut,10.0,100045;nice jacket,20.00,29887';
</script>跟踪解决方案将分号作为项目分隔符进行计算。
跟踪解决方案的支持告诉我对这些值进行url编码。这能行得通吗?我猜URL编码并没有阻止任何xss攻击。是否可以先使用url-encode和html-encode,然后再使用javascript-encode?
发布于 2010-07-28 17:33:18
这些值只需要经过URL编码即可传输到客户端。如果信息是由客户端显示的,他们有责任确保他们是在保护自己免受xss攻击,而不是你的。
<script>
var et_cart= 'lars+%FCmlaut%2C10.0%2C100045%3Bnice+jacket%2C20.00%2C29887';
</script>https://stackoverflow.com/questions/3350933
复制相似问题