【问题标题】:Track button click within a iframe跟踪 iframe 内的按钮点击
【发布时间】:2010-05-12 15:36:33
【问题描述】:

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

(非常虚构的例子)如果我有这样的 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>

【问题讨论】:

    标签: javascript facebook iframe button onclick


    【解决方案1】:

    如果您询问是否可以在具有您的 iframe 的 HTML 的 DOM 中找到一个按钮,然后向它添加一个 onclick 事件,那么可以,如果您来自同一个域。

     window.parent.getElementById()
    

    可以工作——任何其他 DOM 函数也可以。

    如果您不在同一个域中,则浏览器不会让您访问。它被称为跨站点脚本 (XSS),被视为安全违规。

    如果您在另一个域上,所有者确实添加了您的 iframe,对吗?如果是这样,让他们也添加事件。它们可以传入变量并在 iframe 上调用辅助函数。这样他们就可以将按钮传递进去,您可以将事件添加到其中。

    【讨论】:

    • 我们在一个域中安装了指向另一个域的 iFrame 小部件,因此这是 XSS 的情况,可以理解。是否可以添加某种叠加层(假设我们知道页面上的小部件位置)来跟踪“onclick”事件并将其传递给 iframe ?很遗憾,我们不能要求第 3 方小部件提供商向他们的 iFrame 添加任何内容。
    • 事情是这样的——我希望不是。 XSS 是一种安全违规是有原因的。如果广告能够阅读我的邮件或诱使我做一些我看不到的事情。如果网站所有者不配合,您所做的任何事情都应该被浏览器阻止。如果你找到了办法——那就是一个安全漏洞。
    【解决方案2】:

    答案是:如果不与远程站点进行某种合作,根本不可能。
    这是由于同源政策为您提供保护。

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

    【讨论】:

      【解决方案3】:

      跨浏览器不可靠,不。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-10-05
        • 2013-06-29
        • 2015-10-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-10
        • 1970-01-01
        相关资源
        最近更新 更多