通过 <img> 或 <a> 标签加载可执行代码?

5
我正在开发一款应用程序,允许用户输入任意URL,并将其包含在标签中。
我需要注意哪些安全风险?
该应用程序使用PHP编写,目前唯一的安全措施是在将输入URL作为HTML发送之前使用PHP的htmlentities()函数对其进行处理。我还检查了URL文本是否以"http://"或"https://"开头,但我不知道这是否有任何安全效果。
除此之外,我还应该采取哪些措施来确保最终用户的安全?
7个回答

3

请查看XSS检查清单

(注:XSS是一种跨站脚本攻击技术)

谢谢,我正在使用CodeIgniter框架,它有一个xss_clean()函数。我尝试了该网站上大约一半的示例,经过xss_clean()处理后,它用字符串"[removed]"替换了所有易受攻击的文本。 - Dolph

3

哎呀,这正是我担心的事情。谢谢。 - Dolph

2

2

1
此外,在新版浏览器中,可以使用{{link1:inline data}}将整个图像插入到URL中。虽然可能通过这种方式注入某些内容,但这需要一个巨大的浏览器端安全漏洞,并且我不知道如何对此进行消毒。
也许您只想限制对某些域的访问,或者检查图像是否实际存在?这可能已经有很大帮助了。

1

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" />

0
除了迄今为止的伟大答案外,xss防范清单实际上并没有考虑到像onmouseover、onhover等事件属性。这些都是设计上的,允许某人在发生某些事情时运行一些javascript代码。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接