作为项目的一部分,我通过网络表单接受用户的文字并将其显示在网页上。他们提供的文本可能包含URL,如果是这样,我想将其渲染为超链接以改善体验。例如,用户可能会提交包含http://www.google.com
的文字,我想将其转换为<a href="http://www.google.com">...
我想知道在执行此操作时我应该注意哪些安全问题。我已经采取措施避免任何简单的XSS插入,因为我的XML库将逃避任何特殊字符,但我想有更复杂的攻击。</ p>
答案 0 :(得分:1)
除了忽略javascript:之外,您应该只为http:协议创建超链接,因为某些应用程序可以通过其他协议启动或控制。想到了Steam,Skype和AOL Messenger。
答案 1 :(得分:0)
如果您只包含a
个元素的网址,那么只要他们输入恶意网址(可能会缩短)并且您最终点击它就会出现的唯一问题,前提是所有其他攻击手段都是安全的在你的软件中(例如,不能任意执行JavaScript等)。
确保在匹配网址时不考虑javascript:
伪协议。没什么好看的。