0

我正在使用 Closure 为 chrome 扩展渲染一个大豆模板,并且在插入chrome-extension://*链接时遇到问题,因为它们被过滤了soy.$$filterNormalizeUri

虽然通常不允许chrome-extension://*链接是不可取的,但它在 chrome 扩展中是有意义的。

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

例子:

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

$list生成的样式表路径列表在哪里chrome-extension://*

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

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

4

1 回答 1

0

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

于 2015-04-14T17:33:17.360 回答