ruby-on-rails-3 - 如何转义html?

标签 ruby-on-rails-3 security xss

我正在使用 jQuery Markitup允许用户输入 html ......因此他们可以输入以下内容:

<h1>Foo</h1>
<p>Foobar</p>

然而,我在看http://railscasts.com/episodes/204-xss-protection-in-rails-3并决定在输入中尝试这段代码:
<script>alert('test');</script> 

令我惊讶的是,当我提交表单并刷新页面时,警告框出现了。这是安全隐患!

这是我的看法:
<div><%= comment.description.html_safe %></div>

以上呈现任何html,但也容易出现xss。所以我试过:
<div><%= html_safe(comment.description).html_safe %></div>

但是上面没有呈现任何html。它实际上将 html 显示为 正文 ,这不是所需的行为。

我需要渲染 html,同时保护自己免受 xss 的影响。我该怎么做?

最佳答案

尝试

<%= sanitize(comment.description) %>

更新:

要删除所有标签,请使用 strip_tags

关于ruby-on-rails-3 - 如何转义html?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7545411/

相关文章:

javascript - XSS 攻击和样式属性

ruby-on-rails - Devise 和 ActionMailer 混淆

ruby-on-rails - 在通过自定义初始值设定项编写的 config 目录中的自定义 yml.erb 文件中使用 image_path 帮助程序

ruby-on-rails - 如何使用 Sunspot Solr 搜索多个表(模型)?

c++ - 安全性:防止未经授权加载/调用 C++ DLL

java - Spring Boot |使用动态 keystore /信任库

c# - 使用 C# 开发 RSA SecurID

ruby-on-rails - 在我看来,未定义的方法 `image'

http - HTTP header XSS漏洞如何利用?

javascript - OWASP ZAP Fuzzing- 输入参数作为字符串反射(reflect)在响应中,还是 XSS?