在Ruby on Rails框架中使用i18n
gem时,如何仅将传递给转换方法的变量标记为不安全?
例如:
t(
'safe',
default: 'Unsafe <b>%{unsafe_variable}</b> and safe %{safe_variable}',
unsafe_variable: "<script>alert('unsafe');</script>",
safe_variable: '<strong>safe</strong>'
)
应该返回
Unsafe <b><script>alert('unsafe');</script></b> and safe <strong>safe</strong>
答案 0 :(得分:2)
如果您事先知道哪一个是安全的,哪一个是不安全的,您只需使用h
帮助程序强制转义不安全的变量。
t('safe', default: 'Unsafe <b>%{unsafe_variable}</b> and safe %{safe_variable}',
unsafe_variable: h("<script>alert('unsafe');</script>"),
safe_variable: '<strong>safe</strong>'
)