如何在rails中安全地保存/检索HTML标签到数据库?

use*_*047 5 html ruby validation ruby-on-rails ruby-on-rails-4

我需要在我的rails应用程序中安全地将HTML标记保存/检索到数据库.目前我保存HTML没有任何验证如下:

<h2>Sample title</h2> 
<p>sample description</p>
Run Code Online (Sandbox Code Playgroud)

在我使用的视图中<%=raw @page.desription %>.它按预期工作.但我需要知道它是否安全?

Edd*_*gan 11

你永远不能确定它是安全的.始终将所有用户输入视为敌对.

但是,如果"安全"是指"没有像s和s 这样的潜在真正有害的元素",那么我就向你呈现消毒助手.您可以从数据库中打印HTML,并且只允许使用某些标签白名单.<script><style>

<%=raw sanitize @page.description, tags: %w(h2 p strong em a), attributes: %w(id class href) %>

上面的例子将允许所有h2,p,strong,ema标签,只有id,classhref对他们的属性.其他一切都将被删除.