允许用户编辑和存储HTML

时间:2012-07-15 21:09:57

标签: php html sanitization

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

除了''净化''HTML应该采取的其他步骤。

1 个答案:

答案 0 :(得分:1)

前几天我问similar question这对你有帮助。

我会将所有用户生成的HTML存储在另一个域/子域中,以避免cookie被盗,并使您的cookie无法访问,因此无法使用JavaScript访问它们。您可以在主域上设置cookie(用于身份验证等),不包含子域。此外,您可以使用CSRF令牌来避免自动滥用。

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

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

另一位用户也引起了我对Content Security Policy的注意,这是一个标题(但不幸的是只有少数浏览器支持)。

但这取决于您希望为用户提供多少自由。