我发现Rails默认情况下不会将表格标签列入白名单。这有什么特别的安全原因吗?我想不出任何,但我正在使用CKEditor来允许用户输入HTML标签,我希望他们在需要时使用表格(只要没有某种风险,我就是不知道)。这是我的第一个应用程序,我允许用户设置HTML标记,所以虽然我找不到不的任何原因,但我仍然有点担心它。
在Rails GitHub issue中,讨论过使用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"}>