我有一个包含此sanitize()代码的部分:
<%= sanitize comment.body,
:tags => %w(a b embed i img object p param),
:attributes => %w(allowfullscreen allowscriptaccess href name src type value) %>
我希望用户能够嵌入视频,链接,图片,使用斜体,粗体等。
这有多不安全,如果我把它放在现场网站上,我应该期待或准备应对什么?
注意:这是假设没有明显的输入消毒。
感谢阅读。
答案 0 :(得分:1)
您真正需要注意的标签是&lt; script /&gt;和&lt; object /&gt;。
如果允许视频,则应根据与来自YouTube和其他系统的预期值匹配的可接受对象格式进行验证,或者(理想情况下)创建处理用户嵌入的UI。
去年,我创建了一个系统,通过获取YouTube网址并手动导出对象嵌入代码,允许视频嵌入。它的好处是使用户体验非常精简,并保护系统免受潜在的攻击。</ p>
哦,还有其他的事情 - 如果你能使用强大 em ,而不是 b 和 i 。