Closure使用autoescape = strict禁用URL替换

时间:2015-04-10 22:33:56

标签: google-chrome-extension google-closure google-closure-templates soy-templates

我使用Closure渲染大豆模板以获得Chrome扩展程序,因为它们被chrome-extension://*

过滤而无法插入soy.$$filterNormalizeUri个链接

虽然通常不允许chrome-extension://*个链接,但在Chrome扩展程序中这是有意义的。

是否有办法将协议列入白名单或允许特定的未经过滤的网址替换(可能使用soy.$$normalizeUri代替soy.$$filterNormalizeUri)?输入不是用户定义的,应该可以安全使用。

示例:

{template .t}
  {foreach $src in $list}
    <link rel="stylesheet" href="{$src}" />
  {/foreach}
{/template}

$list是生成的以chrome-extension://*

开头的样式表路径列表

返回的错误是Uncaught AssertionError: Failure: Bad value chrome-extension:// ... for |filterNormalizeUri

有关转义的信息:https://developers.google.com/closure/templates/docs/security#in_urls

1 个答案:

答案 0 :(得分:0)

如果$ list的元素是SanitizedContent实例而不是字符串,那么我认为它们不应该被转义。