我正在构建一个简单的基于Web的论坛应用程序.我想允许用户在他们的帖子中包含html,但是想要停止任何跨站点脚本.我目前的策略是不允许任何"脚本"标签,只允许任何标签上的"样式"和"href"属性,并且不允许"href"值以"javascript:"开头.有什么我想念的吗?
更新:我最终用html元素的"白名单"来解决这个问题.找到无效元素后,我将删除标记,但保留内部html.这解决了人们从MS Word文档复制和粘贴的问题.我也查看了antisamy.net但遇到了一些问题,它处理跨度上的样式属性(即删除它们).如果我能解决这个问题,我可以切换到那个解决方案.
Mat*_*hen 11
您应该遵循StackOverflow和其他站点的方法,并为标记和属性使用白名单.听起来你正在使用白名单来表示属性,这很好.你也应该为元素这样做,这样人们就不会像形式,iframe,meta,frameset等那样偷偷摸摸(你们没有提到过).