丰富的文本编辑,防止嵌入式JavaScript代码
-
01-10-2019 - |
题
我使用著名的Symfony框架制作了一个网站。我想在其中添加丰富的编辑功能。我找到了Tinymce编辑。但是存在一个问题:用户将一些JavaScript代码嵌入到内容中?例如警报(“ Hello World”)。
我测试了WordPress,这是一个非常著名的博客软件。它面临同样的问题。 例子.
如果有人嵌入警报脚本,这没什么大不了的。但是,如果他们嵌入了一些危险的代码怎么办?您是否遇到了同样的问题?我应该使用Markdown代替HTML吗?有什么好的小部件用于Markdown编辑吗?
解决方案
不允许用户输入中任何嵌入式JavaScript。这很容易在客户端或服务器上清理。拥有您支持的HTML标签的“白色列表”,并从您允许的任何内容中删除任何事件侦听器属性。
其他提示
最好使用现有库来清理您的用户输入,即HTML净化器项目: http://htmlpurifier.org/ 似乎保持和制作精良。
不隶属于 StackOverflow