Закрытие отключить подстановку URL с помощью autoescape=strict
Я рендеринг соевого шаблона с использованием 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 value
хром-расширение://...for |filterNormalizeUri
Информация о побеге: https://developers.google.com/closure/templates/docs/security
1 ответ
Если элементы $list являются экземплярами SanitizedContent, а не строками, то я думаю, что их не следует экранировать.