不安全的HTML

her*_*son 2 html

我正在构建一个简单的基于Web的论坛应用程序.我想允许用户在他们的帖子中包含html,但是想要停止任何跨站点脚本.我目前的策略是不允许任何"脚本"标签,只允许任何标签上的"样式"和"href"属性,并且不允许"href"值以"javascript:"开头.有什么我想念的吗?

更新:我最终用html元素的"白名单"来解决这个问题.找到无效元素后,我将删除标记,但保留内部html.这解决了人们从MS Word文档复制和粘贴的问题.我也查看了antisamy.net但遇到了一些问题,它处理跨度上的样式属性(即删除它们).如果我能解决这个问题,我可以切换到那个解决方案.

Mat*_*hen 11

您应该遵循StackOverflow和其他站点的方法,并为标记和属性使用白名单.听起来你正在使用白名单来表示属性,这很好.你也应该为元素这样做,这样人们就不会像形式,iframe,meta,frameset等那样偷偷摸摸(你们没有提到过).

  • 将MS Word粘贴到WYSIWYG编辑器是一件痛苦的事!一些编辑器(FCKEditor和我认为TinyMCE - 我的首选)将允许您拦截浏览器的Ctrl + V和粘贴功能,并强制用户将MS Word内容粘贴为纯文本.它不会进行格式化,但它会干净!TinyMCE实际上也有"从Word粘贴"功能. (3认同)

Jas*_*rry 7

确保你取出iframe,object,embed.实际上有很多.

或许更好的是允许Markdown代替?

  • 将文本存储为Markdown并将其显​​示为WYSIWYG并不矛盾.实际上,如果你创建一个使用XML的变体,你可以通过XSLT来创建所见即所得. (2认同)