Я использую следующий плагин: 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 и т. д. по умолчанию):
общая/editor_toolbar:
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-представлением)
Надеюсь, это не глупый вопрос (я не очень разбираюсь в безопасности), но это относительно безопасно или опасно? Если да, то как это предотвратить?