Bra*_*don 5 security ruby-on-rails sanitize ruby-on-rails-5
我发现 Rails 默认情况下不会将其清理程序的表标签列入白名单。这有什么特殊的安全原因吗?我想不出任何,但我正在使用 CKEditor 来允许用户输入 HTML 标签,并且我希望他们可以使用表格(如果他们愿意的话)(只要不存在某种风险)不知道)。这是我第一个允许用户设置 HTML 标签的应用程序,因此虽然我找不到任何不这样做的理由,但我仍然对此感到有点焦虑。
在Rails GitHub问题中,讨论了使用Loofah的较新列表,但Rails开发人员决定继续使用Rails 4.1中的白名单,但对于表标签是否存在安全风险没有明确的答案。
顺便说一句,为了节省人们的时间来确定哪些标签在他们的 Rails 版本中被列入白名单(这是非常难找到的),您可以转到控制台(这是针对 Rails 5.1.4 的):
Rails::Html::Sanitizer.white_list_sanitizer.allowed_tags
=> #<Set: {"strong", "em", "b", "i", "p", "code", "pre", "tt", "samp",
"kbd", "var", "sub", "sup", "dfn", "cite", "big", "small", "address", "hr",
"br", "div", "span", "h1", "h2", "h3", "h4", "h5", "h6", "ul", "ol", "li",
"dl", "dt", "dd", "abbr", "acronym", "a", "img", "blockquote", "del", "ins"}>
Rails::Html::Sanitizer.white_list_sanitizer.allowed_attributes
=> #<Set: {"href", "src", "width", "height", "alt", "cite", "datetime",
"title", "class", "name", "xml:lang", "abbr"}>
Run Code Online (Sandbox Code Playgroud)