我使用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
答案 0 :(得分:0)
如果$ list的元素是SanitizedContent实例而不是字符串,那么我认为它们不应该被转义。