在我们的应用程序中,我们允许用户使用WYSIWYG编辑器编写他们的Bio,但它通常包含破坏我们页面的错误HTML。在iframe中显示用户bio是一个好主意,这样它不会影响页面的其余部分吗?或者更好的选择?
由于
答案 0 :(得分:3)
您可能需要考虑将用户限制为Markdown,就像Stack Overflow uses for profiles, answers, etc一样。
如需进一步阅读,您可能需要查看以下内容:
答案 1 :(得分:1)
这不是一个坏主意,但为什么不在保存之前验证html?或者只是丑陋而不是坏事?大多数编辑确实有干净的办公室格式。或者是允许输入HTML的商务要求?
但iframe是最安全的做法,我会说它去吧!
答案 2 :(得分:1)
解决方案是过滤HTML,以确保它“OK”:
这样做的好工具是HTMLPurifier (引用):
HTML Purifier符合标准 用PHP编写的HTML过滤器库。 HTML Purifier不仅会删除所有内容 恶意代码(更好地称为XSS) 经过全面审核,安全无缺 容许白名单,它也会 确保你的文件是 符合标准
基本上,一旦用户输入了HTML,在将其保存到数据库之前,您将通过HTML Purifier传递它,这将确保它有效,并删除您未指定的任何标记/属性as “允许”。