angular 翻译 sanitize / escape
angular translate sanitize / escape
我在 angular 翻译时遇到了奇怪的或可能是有意的行为。
我们的价值战略是
$translateProvider.useSanitizeValueStrategy('sanitize');
我们在应用程序中主要使用翻译过滤器,但是当涉及到特殊字符时,我们得到例如 Überschrift 之类的 Ü ;附注.
如果我使用该指令,它会起作用。
如果我使用过滤器,这仅在清理策略设置为 "escaped".
时有效
除了将所有翻译过滤器重写为指令之外,还有其他解决方案吗?
这是我的plnkr http://plnkr.co/edit/QIMVQcyH5APeYxNnS82v
供您参考,
我不能简单地使用 "escaped" 策略,因为我们也使用 angular 翻译变量,这些变量有时甚至包含 html 标签。
谢谢!
使用 sanitizeParameters
而不是 sanitize
。这是固定的plnkr:http://plnkr.co/edit/qicVqPXn3qo6hMNa1fY2?p=preview
(编辑:07/10/2016):两种消毒策略之间存在显着差异。 sanitizeParameters
清理插值参数而不是翻译后的输出。这意味着它不允许更改这些参数,但翻译后的内容仍然容易受到攻击,因为它没有经过清理。
sanitize
和 UTF-8 字符的问题是一个已知问题,我相信它正在处理中。
$translateProvider.useSanitizeValueStrategy(['escape', 'sanitizeParameters']);
这适用于我的项目。我希望这足够安全。
来源:
我在 angular 翻译时遇到了奇怪的或可能是有意的行为。
我们的价值战略是
$translateProvider.useSanitizeValueStrategy('sanitize');
我们在应用程序中主要使用翻译过滤器,但是当涉及到特殊字符时,我们得到例如 Überschrift 之类的 Ü ;附注.
如果我使用该指令,它会起作用。
如果我使用过滤器,这仅在清理策略设置为 "escaped".
除了将所有翻译过滤器重写为指令之外,还有其他解决方案吗?
这是我的plnkr http://plnkr.co/edit/QIMVQcyH5APeYxNnS82v
供您参考, 我不能简单地使用 "escaped" 策略,因为我们也使用 angular 翻译变量,这些变量有时甚至包含 html 标签。
谢谢!
使用 sanitizeParameters
而不是 sanitize
。这是固定的plnkr:http://plnkr.co/edit/qicVqPXn3qo6hMNa1fY2?p=preview
(编辑:07/10/2016):两种消毒策略之间存在显着差异。 sanitizeParameters
清理插值参数而不是翻译后的输出。这意味着它不允许更改这些参数,但翻译后的内容仍然容易受到攻击,因为它没有经过清理。
sanitize
和 UTF-8 字符的问题是一个已知问题,我相信它正在处理中。
$translateProvider.useSanitizeValueStrategy(['escape', 'sanitizeParameters']);
这适用于我的项目。我希望这足够安全。
来源: