我正在开发一款应用程序,允许用户输入任意URL,并将其包含在和标签中。我需要注意哪些安全风险?该应用程序使用PHP编写,目前唯一的安全措施是在将输入URL作为HTML发送之前使用PHP的htmlentities()函数对其进行处理。我还检查了URL文本是否以"http://"或"https://"开头,但我不知道这是否有任何安全效果。除此之外,我还应该采取哪些措施来确保最终用户的安全?
可以构建一个既是有效的JavaScript文件又是图像的图像,并让浏览器执行它。请参见http://www.thinkfu.com/blog/?p=15 SVG图像(mime-type image / svg + xml)可以包含JavaScript。请参见http://www.w3.org/TR/SVG/interact.html
您想阅读关于XSS(跨站脚本攻击)和XSRF(跨站请求伪造)的内容。 < p > 编辑: 如ryeguy所指出的那样,您几乎可以复制并粘贴XSS(跨站脚本攻击)Cheat Sheet中的任何示例,并相应地寻求最佳预防方法。
此外,在新版浏览器中,可以使用{{link1:inline data}}将整个图像插入到URL中。虽然可能通过这种方式注入某些内容,但这需要一个巨大的浏览器端安全漏洞,并且我不知道如何对此进行消毒。也许您只想限制对某些域的访问,或者检查图像是否实际存在?这可能已经有很大帮助了。
CSRF:(Note: This is already in Chinese characters, as there is no need to translate programming-related terms such as CSRF)<img src="http://example.org/accounts/123/delete" />