代码之家  ›  专栏  ›  技术社区  ›  Mathias F

如何对呈现到页面并最终用于URL的值进行编码?

  •  0
  • Mathias F  · 技术社区  · 16 年前

    我有一个脚本,作为跟踪解决方案(etracker)的一部分呈现到html页面。

    是这样的:

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

    这将通过一些我无法控制的javascript传输到跟踪解决方案的服务器。它最终将成为两个项目。这些项目在源代码中用分号分隔(在“100045”之后)。

    我显然需要对要呈现的值进行Html编码和Javascript编码。 我首先对Html进行编码,然后删除单引号。

    这是可行的,但我对法语和德语中的特殊字符有一个问题,例如umlaut(ü,÷…)。 它们呈现类似{的内容。使用lars mlaut作为文章时,脚本的输出是:

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

    分号由跟踪解决方案作为项目分隔符计算。

    跟踪解决方案的支持让我对这些值进行url编码。这能行吗? 我猜URL编码并不能阻止任何xss数据包。可以先进行url编码和html编码,然后再进行javascript编码吗?

    1 回复  |  直到 14 年前
        1
  •  0
  •   William    16 年前

    这些值只需要经过URL编码就可以传输到客户端。如果客户机正在显示信息,那么他们有责任确保自己免受xss攻击,而不是你的攻击。

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