2010-05-12 93 views
1

如果我无法控制外部网站或其内容,是否可以跟踪iFrame中的按钮点击?在iframe中跟踪按钮点击

(非常fictionnal例如)如果我有这样的iframe:

<iframe src="http://www.johnny.com/plugins/like.php?href=http%253A%252F%252Fexample.com%252Fpage%252Fto%252Flike&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;font&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe> 

回答

1

如果您问是否可以在具有iframe的HTML的DOM中查找按钮,然后向其添加onclick事件,那么是的,如果您从同一个域中提供服务。

window.parent.getElementById() 

将工作 - 所以将任何其他的DOM功能。

如果你不在同一个域中,那么浏览器不会让你。它被称为跨站点脚本(XSS),被认为是一种安全违规。

如果你在另一个域名,所有者确实添加了你的iframe,对吧?如果是这样,让他们也加入事件。他们可以传递变量并在你的iframe上调用helper函数。所以他们可以通过按钮,你可以添加事件。

+0

我们在一个域中,我们已经安装了一个引用另一个域的iFrame小部件,所以这是一个XSS的情况,理解。 是否可以添加一些覆盖(假设我们知道页面上的小部件位置)来跟踪“onclick”事件并将其传递给iframe? 不幸的是,我们不能要求第三方小部件提供商向他们的iFrame添加任何东西。 – philgo20 2010-05-12 16:00:12

+0

这是事情 - 我希望不是。出于某种原因,XSS是一种安全违规行为。广告能否阅读我的邮件或欺骗我做一些我看不到的事情。如果网站所有者不合作,您所做的任何事情都应该被浏览器阻止。如果你找到了方法 - 这是一个安全漏洞。 – 2010-05-13 00:31:20

0

无法可靠地跨浏览器,没有。

这很容易被认为是跨站点脚本(XSS)漏洞利用并被大多数现代浏览器所捕获。

1

答案是:根本不可能与远程站点没有某种合作。
这是由于相同原产地政策踢你的保护。

如果您有某种合作,那么您可以使用跨域消息传递(例如,使用easyXDM)。

+0

感谢easyXDM链接 – philgo20 2010-05-12 16:58:16