2012-07-15 131 views
0

理想情况下,我希望允许用户像编辑tumblr一样编辑HTML,您可以在浏览器中编辑主题HTML。你也得到完全控制。我听说过诸如html-purifier之类的工具。允许用户编辑和存储HTML

除了“净化”HTML以外,还应采取其他措施。

+1

MySQL与它有什么关系? – 2012-07-15 21:11:31

+4

这一切都取决于你想让你的用户做什么。你必须提供更多的细节来得到具体的答案。是否有任何与您有关的特定场景?实施净化方法遇到麻烦吗? – Lix 2012-07-15 21:13:17

+0

它必须存储在某处,因此mysql标记。 – 2012-07-15 21:28:12

回答

1

前几天我问了一个similar question哪些可能对你有帮助。

我会将所有用户生成的HTML存储在另一个域/子域中,以避免cookie被窃取并使您的cookie成为HttpOnly,以便它们无法通过JavaScript进行访问。您可以在主域名上设置您的Cookie(用于身份验证等),而无需子域名。另外,您可以使用CSRF令牌来避免自动滥用。

如果你想禁止有害的代码/ JavaScript,你必须过滤你的HTML,如果你这样做,你应该白名单所有允许的标签,而不是黑名单禁止标签(因为新的HTML5来了,甚至浏览器 - 具体的)。

另一个挑战是过滤属性(像onclick这样的事件属性允许执行JavaScript)。

另一个用户也呼吁我注意Content Security Policy这是一个头(但不幸的是只有少数浏览器支持)。

但这取决于您想给用户多少自由。

相关问题