在不受信任的文本中安全地呈现超链接

时间:2011-10-13 00:29:37

标签: html xss security

作为项目的一部分,我通过网络表单接受用户的文字并将其显示在网页上。他们提供的文本可能包含URL,如果是这样,我想将其渲染为超链接以改善体验。例如,用户可能会提交包含http://www.google.com的文字,我想将其转换为<a href="http://www.google.com">...

我想知道在执行此操作时我应该注意哪些安全问题。我已经采取措施避免任何简单的XSS插入,因为我的XML库将逃避任何特殊字符,但我想有更复杂的攻击。<​​/ p>

2 个答案:

答案 0 :(得分:1)

除了忽略javascript:之外,您应该只为http:协议创建超链接,因为某些应用程序可以通过其他协议启动或控制。想到了Steam,Skype和AOL Messenger。

答案 1 :(得分:0)

如果您只包含a个元素的网址,那么只要他们输入恶意网址(可能会缩短)并且您最终点击它就会出现的唯一问题,前提是所有其他攻击手段都是安全的在你的软件中(例如,不能任意执行JavaScript等)。

确保在匹配网址时不考虑javascript:伪协议。没什么好看的。