如何使用Ruby on Rails消毒输出内容?
- 内容介绍
- 文章标签
- 相关推荐
本文共计319个文字,预计阅读时间需要2分钟。
我最近开发了一个Rails3应用程序,将其从另一种语言编写的旧CMS迁移过来。迁移内容后,我在从数据库输出内容时遇到了问题。问题在于@content.desc字段有时会包含HTML。目前我能做的唯一方法是使用%25=“来处理。
@ content.desc字段有时会有html.目前我能让它工作的唯一方法是:
<%= sanitize content.desc %>
但这是最好的方法吗?当我使用<%= h @ content.desc%>我仍然可以看到html标签.当我使用<%= simple_format @ content.desc%>我变得邪恶的间距.
在输出内容的同时,我可以看到所有选项的权威指南吗?我试图搜索,但无法改变任何东西(rails newb,我知道).
默认情况下,任何未标记为“安全”的字符串都将在Rails 3中进行HTML转义.某些方法(如sanitize,h,link_to和许多其他帮助程序)将返回安全字符串,从而允许它们按字面编写.有关详细信息,请参阅 this blog post.如果您确定@ content.desc中包含的HTML是安全的,您可以像这样标记它:<%= @ content.desc.html_safe%>.
本文共计319个文字,预计阅读时间需要2分钟。
我最近开发了一个Rails3应用程序,将其从另一种语言编写的旧CMS迁移过来。迁移内容后,我在从数据库输出内容时遇到了问题。问题在于@content.desc字段有时会包含HTML。目前我能做的唯一方法是使用%25=“来处理。
@ content.desc字段有时会有html.目前我能让它工作的唯一方法是:
<%= sanitize content.desc %>
但这是最好的方法吗?当我使用<%= h @ content.desc%>我仍然可以看到html标签.当我使用<%= simple_format @ content.desc%>我变得邪恶的间距.
在输出内容的同时,我可以看到所有选项的权威指南吗?我试图搜索,但无法改变任何东西(rails newb,我知道).
默认情况下,任何未标记为“安全”的字符串都将在Rails 3中进行HTML转义.某些方法(如sanitize,h,link_to和许多其他帮助程序)将返回安全字符串,从而允许它们按字面编写.有关详细信息,请参阅 this blog post.如果您确定@ content.desc中包含的HTML是安全的,您可以像这样标记它:<%= @ content.desc.html_safe%>.

