我使用著名的Symfony框架制作了一个网站。我想在其中添加丰富的编辑功能。我找到了Tinymce编辑。但是存在一个问题:用户将一些JavaScript代码嵌入到内容中?例如警报(“ Hello World”)。

我测试了WordPress,这是一个非常著名的博客软件。它面临同样的问题。 例子.

如果有人嵌入警报脚本,这没什么大不了的。但是,如果他们嵌入了一些危险的代码怎么办?您是否遇到了同样的问题?我应该使用Markdown代替HTML吗?有什么好的小部件用于Markdown编辑吗?

有帮助吗?

解决方案

不允许用户输入中任何嵌入式JavaScript。这很容易在客户端或服务器上清理。拥有您支持的HTML标签的“白色列表”,并从您允许的任何内容中删除任何事件侦听器属性。

其他提示

最好使用现有库来清理您的用户输入,即HTML净化器项目: http://htmlpurifier.org/ 似乎保持和制作精良。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top