通过iframe src进行的xss攻击

通过iframe src进行的xss攻击

问题描述:

我允许用户嵌入YouTube或任何其他视频源,只要求他们提交他们收到的嵌入代码的src即可。然后我将它保存到数据库中并通过iframe加载它。但是,f有一个来源,例如,src="http://innocent.com/hackingContent.php",那么我的网站对xss攻击是否有帮助?通过iframe src进行的xss攻击

我估计用户可能有一个src的恶意脚本,只要iframe将源代码嵌入到我自己的html中,它就会加载。

编辑如果src包含<script type="text/javascript" src="evilScript.js"></script>怎么办?虽然我am使用preg_match只是为了确保它只有一个url。

是的,你很脆弱。什么阻止了不良用户链接到色情片?或者是一个看起来合法并收获用户名和密码的网站。

为什么不建立一个你会接受的视频源白名单...验证提交的网址是在这些域上,并验证网址存在。

这样,人们无法将完全随机的网址插入到您的内容中。

“白名单”是您将接受的值列表。例如,您的服务器上,当用户提交一个网址,你会接受来自

http://www.youtube.com ....

正确的东西吗?因此,您可以列出您将接受的所有网址,然后确保用户的输入与列表中的某个项目匹配。如果它不拒绝它。 (根据我们的意思是'开始'或类似的意思 - 显然不完全匹配)

“黑名单”会相反。你会有一个列表,但它的列表将不允许

白名单== 的事情,你让
黑名单== 的事情列表,你不允许

+0

你的意思是使用'curl'库进行URL验证? – jmishra 2012-01-16 01:29:08

+0

类似的东西。您也可以下载内容并在服务器上处理它,以确保它是合法的。 – hvgotcodes 2012-01-16 01:33:03

+0

说起来,当你说'视频源的白名单'时,它与iframe不同。这是如何运作的?如果你能在你的答案中解释它,这将是有帮助的。 – jmishra 2012-01-16 01:52:02

不,如果iframe src与调用所述iframe的域不同,您将受到XSS攻击保护。这是根据相同域起源策略

+3

的iframe'src'可以'JavaScript的名单:...'这将在包含窗口的上下文中运行。 – Esailija 2012-01-16 01:23:47

+0

非常感谢大卫。所以你说如果我通过iframe加载'http:// innocent.com/hackingContent.php'到'example.com/goodContent.php'中,那么它不是一个问题吗? – jmishra 2012-01-16 01:23:54

+0

如果他允许任何网址,有人仍然可以通过他的网站显示恶意内容...对不对? – hvgotcodes 2012-01-16 01:24:07