代码之家  ›  专栏  ›  技术社区  ›  John Giotta iaforek

是否可以获取嵌入我的Flash应用程序的域?

  •  1
  • John Giotta iaforek  · 技术社区  · 14 年前

    我为之工作的公司有自己的基于Flash的视频播放器,我从我们的高管那里得到的问题是:“我们能告诉我们的播放器嵌入了什么网站吗?”

    首先,我假设我可以使用apache mod_rewrite,提取http_reffer,并将其附加到请求的URL的末尾。所以当浏览器 http://.../viewer.swf 我可以拍打吗?参考=otherdomain.com

    但是,我不认为我们的cdn会迎合我们的htaccess文件。另外,大多数访问日志条目都显示一个破折号,而不是域。

    所以我在这里提出这个问题,看看我是否有任何想法或解决方案。目前,一切都指向“不可能”。

    5 回复  |  直到 14 年前
        1
  •  0
  •   Ken Henderson    14 年前

    警告:我根本不知道闪光灯……

    不确定您需要如何捕获它,但是您的flash播放器是否可以在客户机上获取URL(或者可能包含帧?)然后把它发回到服务器上?我想在检索viewer.swf之后,但在打开内容流(玩家如何工作的基本假设)之前,它可以做到这一点。

    不确定这是否有用。

        2
  •  0
  •   wpjmurray    14 年前

    使用ExternalInterface,它可以调用父页面中的javascript函数:

    import flash.external.ExternalInterface;
    
    var url:String = ExternalInterface.call('window.location.href.toString');
    

    唯一的问题是,如果用户关闭了javascript,那么URL值将为空。

        3
  •  0
  •   Pekka    14 年前

    引用通常存储在每个请求的访问日志文件中,不是吗?

    这难道不是最简单的事情grep您的cdn的访问日志文件调用嵌入式电影播放器吗?

    如果这不是一个选择:我不是一个闪电侠,但它 必须 使用ActionScript,可以在不影响跨域安全的情况下,以某种方式获得电影中的引用者。毕竟,当对电影提出请求时,信息是可用的。

        4
  •  0
  •   Myk    14 年前

    在这个问题上可能是错的,但我想你可以这样做。将此代码置于应用程序的根级别(在阶段的时间线上或在文档类中):

    trace(this.loaderInfo.url)
    

    如果我没有错的话,那会帮助你的。几年前我为一个视频服务构建了类似的东西,它提取的视频名称是从它所在文件夹的名称派生出来的。如果有帮助请告诉我!

    编辑:哦,对了-一旦你有了它,编写一个Web服务就非常简单了,它将接受它作为一个字符串,并将其存储在一个数据库或其他地方。你甚至可以将它与一个分析服务——myAnalyticsFunction.call(myurl)——联系起来,这将为你解决问题,但这取决于你的设置方式。

    但是,简短的回答-是的,.swfs知道他们住在哪里。

        5
  •  0
  •   Community Egal    7 年前

    我能设计出一种使用mod ou rewrite获取引用者的方法。下面的问题与方法有关。基本上,通过使用重写规则,我可以获取引用者,然后使用附加的查询字符串重定向到实际的SWF。

    Is it possoble to obtain the hostname only from HTTP_REFERER with mod_rewrite?