作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我需要在我的 Rails 应用程序中安全地将 HTML 标签保存/检索到数据库中。目前我保存 HTML 时没有进行任何验证,如下所示:
<h2>Sample title</h2>
<p>sample description</p>
在 View 中我使用 <%=raw @page.desription %>
.它按预期工作。 但我需要知道它是否安全?
最佳答案
您永远无法确定它是否安全。始终将所有用户输入视为敌意。
但是,如果您所说的“安全”是指“没有潜在的真正有害元素,例如<script>
s 和<style>
s”,那么我向您介绍Sanitization Helper .您可以从数据库中打印您的 HTML,并且只允许特定的标签白名单。
<%=raw sanitize @page.description, tags: %w(h2 p strong em a), attributes: %w(id class href) %>
上面的例子将允许所有h2
, p
, strong
, em
和 a
标签,并且只有 id
, class
和 href
他们身上的属性。其他所有内容都将被删除。
关于html - 如何安全地将 HTML 标签保存/检索到 Rails 中的数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24209480/
我是一名优秀的程序员,十分优秀!