富文本编辑,防止嵌入javascript代码
我使用著名的 symfony 框架制作了一个网站。我想为其添加丰富的编辑功能。我找到了TinyMCE编辑器。但出现了一个问题:用户在内容中嵌入一些 javascript 代码怎么样?例如警报('你好世界')。
我测试了wordpress,这是一个非常著名的博客软件。它也面临着同样的问题。 示例。
如果有人嵌入警报脚本也没什么大不了的。但如果他们嵌入了一些危险代码怎么办?您遇到过同样的问题吗?我应该使用 markdown 而不是 html 吗?有什么好的 Markdown 编辑小部件吗?
I made a website using the famous symfony framework. I wanted to add rich editing feature to it. And I found TinyMCE editor. But there comed a problem: how about the user embed some javascript code into the content? such as alert('hello world').
I tested wordpress, which is a very famous blog software. It faces the same problem. example.
It is no big deal if some one embed an alert script. But what if they embed some dangerous code? Have you encountered the same problem? Should I use markdown instead of html? Any good widget for markdown editing?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
最好使用现有的库来清理用户输入,即 html purifier 项目: http://htmlpurifier.org/< /a> 看起来保养得很好而且制作精良。
It's a good idea to use an existing library to clean out your user input, the html purifier project: http://htmlpurifier.org/ seems maintained and well made.
不允许在用户输入中嵌入任何 JavaScript。这在客户端或服务器上都很容易清除。制定一个您支持的 HTML 标记的“白名单”,并从您允许的任何内容中删除任何事件侦听器属性。
Don't allow any embedded javascript in your user input. This is easy to clean out either on the client or the server. Have a "white list" of HTML tags you support, and remove any event listener attributes from whatever you do allow.