Cocoon转义查询参数问题

时间:2009-08-13 08:19:36

标签: xslt escaping apache-cocoon

我正在维护Cocoon 2.1应用程序,我遇到了严重的请求参数问题。

请考虑以下网址:

http://myapp.com/somePage.html?param1=<expected_integer_value>&param2=<expected_integer_value>

param1和param2都直接作为参数(<map:parameter />)传递给变换器,然后使用属性值模板直接在javascript代码中使用:

`<select ... onchange="someFunction(this, '{$param1}','{$param2}');" >`

问题是可以在参数中注入一些JavaScript代码,默认情况下它们不会被转义(尽管如此,所有关于cocoon和xslt的文章都说默认情况下输出 转义)。

也许对cocoon和xsl更有经验的人可能对这个问题有所了解?我怎样才能逃脱茧的输出?我将不胜感激任何帮助和指导。

提前致谢

西蒙

2 个答案:

答案 0 :(得分:3)

我设法找到了解决这个问题的方法。在站点地图文件中,必须使用url-encode函数转义必须直接从url传递到xslt文件的每个参数。 实施例

<map:parameter name="param1" value="{url-encode:{request-param:theNameOfTheParam}}" />'

此致 西蒙

答案 1 :(得分:0)

因为茧解码了婴儿车我建议你做一个简单的翻译,以避免非转义参数的问题:

<select ... onchange="someFunction(this, '{translate($param1,"'", "")}','{translate($param1,"'", "")}');" >

请参阅http://www.zvon.org/xxl/XSLTreference/Output/function_translate.html