当前位置:  开发笔记 > 前端 > 正文

Html在Rails 3视图中转义

如何解决《Html在Rails3视图中转义》经验,为你挑选了1个好方法。

我正在使用Rails 3.我想在erb模板中显示生成的html片段

<%= "
Foo Bar
" %>

Rails编码div标签.

如果我在Rails 2中正确<%=h导致html转义.似乎它在Rails 3中被更改了.如何在Rails 3中插入没有编码的html片段?

问候,阿列克谢.



1> jigfox..:

我假设通过编码你的意思是html-escaping:

要在Rails 3中输出原始html,您可以使用三种不同的方法.

    你可以使用raw帮助器输出原始html

    <% some_string = "
    Hello World!
    " %> <%= some_string %> <%=raw some_string %>

    更多信息:ActionView :: Helpers :: OutputSafetyHelper #raw

    您可以将字符串标记为 html_safe

    <% some_string = "
    Hello World!
    ".html_safe %> <%= some_string %>

    更多信息:String#html_safe和ActiveSupport :: SafeBuffer #new

    您可以使用清理输出 sanitize

    <%=sanitize "
    Hello World!
    ", tags: %w( div ) %>

    更多信息:ActionView :: Helpers :: SanitizeHelper #sanitze

更多信息:

SafeBuffers和Rails 3.0

Railscast#204:Rails中的XSS保护3


这是正确的,但我认为值得注意的是,通常更安全的方法是使用`<%= content_tag:div,"Hello World!" %>`这并不涉及任何标记有潜在危险的字符串是安全的.
推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有