我正在使用ASP.NET网页表单来发表博客风格的评论。
编辑1:这看起来比我最初想象的要复杂得多。如何过滤src?
我更喜欢仍然使用真正的html标签,但如果事情变得太复杂,我可能会选择自定义路线。我还没有做过任何XML,所以我还需要学习更多吗?
发布于 2008-09-21 04:19:31
如果IMG是您唯一允许的,我建议您使用简单的方括号语法来允许它。这将消除对解析器的需求,并减少解析器的其他危险边缘情况的负载。比方说,类似于:
Look at this! [http://a.b.c/m.jpg]
它将被转换为
Look at this! <img src="http://a.b.c/m.jpg" />
您应该过滤SRC地址,这样就不会有恶意的东西传入SRC部分。比如也许
Look at this! [javascript:alert('pwned!')]
发布于 2008-09-21 03:17:11
使用XML解析器来验证您的输入,并删除或编码您不希望允许的所有元素和属性。在这种情况下,请删除或编码除<img> tag, and all attributes from that except src, alt and title
之外的所有标签。
发布于 2008-09-21 04:43:18
如果你最终选择了非超文本标记语言格式(这使得b/c更容易,你可以从字面上转义所有超文本标记语言),使用像markdown这样的标准语法。markdown image syntax为![alt text](/path/to/image.jpg)
还有其他的,比如Textile。其图像语法为!imageurl!
https://stackoverflow.com/questions/110123
复制相似问题