我正在使用以下插件:https ://github.com/jhollingworth/bootstrap-wysihtml5/
这就是我在 Rails 应用程序中清理输入/输出的方式:
post.rb:
protected
def clean_input
self.content = sanitize(self.content, :tags => %w(b i u br p span blockquote pre code), :attributes => %w(id class style))
end
帖子/show.html.rb:
<p><%= sanitize @post.content, :tags => %w(b i u p span br blockquote pre code), :attributes => %w(id class style) %></p>
此解析器规则适用于wysihtml5(当然,编辑器默认允许 b、i 等标签):
共享/编辑器工具栏:
parserRules: {
classes: {
"ruby": 1,
"variable": 1,
"string": 1
},
tags: {
span: {},
code: {},
pre: {}
}
},
所以,现在用户可以输入,应用程序可以输出如下内容:
<pre class="ruby">
<code>
<span class="variable">
$(</span><span class="string">'.wysihtml5'</span>).wysihtml5({<span class=
"string">'stylesheets'</span>: false});
</code>
</pre>
(用户可以从视觉和html视图切换)
我希望这不是一个愚蠢的问题(我对安全性不是很熟悉),但这相对安全还是危险?如果有,如何预防?