Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在rails中安全地将HTML标记保存/检索到数据库?_Html_Ruby On Rails_Ruby_Validation_Ruby On Rails 4 - Fatal编程技术网

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

如何在rails中安全地将HTML标记保存/检索到数据库?,html,ruby-on-rails,ruby,validation,ruby-on-rails-4,Html,Ruby On Rails,Ruby,Validation,Ruby On Rails 4,我需要安全地将HTML标记保存/检索到rails应用程序中的数据库中。目前我保存HTML时未进行任何验证,如下所示: <h2>Sample title</h2> <p>sample description</p> 示例标题 样本描述 在视图中,我使用。它按预期工作但我需要知道它是否安全?只要它来自可靠的来源,就安全了,否则你就不知道它们到底在存储什么。因此,如果你是唯一一个储存它的人,那就去买吧。你永远无法确定它是否安全。始终将所有用户输入视

我需要安全地将HTML标记保存/检索到rails应用程序中的数据库中。目前我保存HTML时未进行任何验证,如下所示:

<h2>Sample title</h2> 
<p>sample description</p>
示例标题
样本描述


在视图中,我使用
。它按预期工作但我需要知道它是否安全?

只要它来自可靠的来源,就安全了,否则你就不知道它们到底在存储什么。因此,如果你是唯一一个储存它的人,那就去买吧。

你永远无法确定它是否安全。始终将所有用户输入视为恶意输入

但是,如果“安全”的意思是“没有潜在的真正有害元素,如
s和
s”,那么我向您介绍。您可以从数据库打印HTML,并且只允许特定的标记白名单


上面的示例将允许所有
h2
p
strong
em
a
标记,并且只允许它们上的
id
class
href
属性。其他所有内容都将被删除。

不,我不是唯一的persion,它是向公众开放的,因此我现在如何确定?参考:这听起来像是一个很好的解决方案,它是一个产品描述,我只需要一些标签。所以如果我只允许一些标签,我就可以走了?在将数据存储到数据库之前,有没有办法对其进行清理?我想,您可以使用同一个助手在输入数据进入数据库之前对其进行清理,但我个人不会这么做。我想说,最好的解决方案是将其存储为用户输入,并在输出时小心消毒。(例如,可能将来您希望允许您先前剥离的元素)谢谢,对,我等待其他答案,然后接受最佳答案。我建议对这个问题进行一些编辑,因为问题和答案都是关于如何安全地显示存储在数据库中的html标记。首先,它不是关于如何将这些标记保存到数据库中,这是原始标题所暗示的。