★★100分求Flash ActionScript初学问题(跨域获取URL)★★

iamzerg 2010-06-24 01:55:00
假设:

我有一个自己的网站: My.com,我把自己做的swf文件放在My.com上,比如 My.com/hhhhh.swf
现在要在第三方网站上插入这个swf链接,我想通过这个swf文件能把第三方网站的url回传到 My.com 上(如果回传不了,仅仅获取url显示在flash舞台上也可)


当然,大家一下就想到了用 ExternalInterface.call("JavaScript函数"); 这个方法来调用吧?
不过现在问题来了,因为一般来说第三方网站在插入swf对象后,会做如下限制:

'allowNetworking', 'internal',
'allowScriptAccess', 'never',

我是初学者、超级菜鸟,不知道说得对不对,上面这个应该是说不允许swf跨域访问 My.com 吧?而且不允许执行脚本,也就是说ExternalInterface这个调用是无效的?那一切不都白费了?小弟不甘心,找了篇文章好像说可以突破:http://www.hack371.com/Article/12307_2.html 不过没研究明白,还请各位老鸟过目。

罗嗦了半天,就是想请教各位,如何做一个swf实现上面第一段黑体部分的功能?如果第三方网站有限制的话如何突破?有没有变通方法比如Silverlight……
...全文
201 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
hzexe 2010-10-18
  • 打赏
  • 举报
回复
因为'allowScriptAccess', 'never', 执行javascript来与网页交互是不可能的了.并且和my.com还受通信安全的制约.

不过这个要求的实现还是可行的,建议一个方法:借助web服务器的功能.
比如:
当http://other.com/xx.html加载http://my.com/xx.swf时,web服务器获取refferer,然后把http://my.com/xx.swf的请求重定向到
http://my.com/xx.swf?reffer=http://other.com/xx.html

swf可以获取到这个参数,进而做出判断.
LutzMark 2010-10-18
  • 打赏
  • 举报
回复
自己做的swf加入与自己服务器交互的代码,用比如Reb5,WebOrb之类请求映射交互网关很轻松。
比如你在swf加一个按钮。事件为记录swf访问来源的url进入自己的数据库
chinazhousheng 2010-10-18
  • 打赏
  • 举报
回复
var webAppURL:String = Application.application.url;这样是不是就可以显示在舞台了?
zhushoudong 2010-06-25
  • 打赏
  • 举报
回复
要不这样,直接做个WEB服务 直接用他来完成
leemiki 2010-06-25
  • 打赏
  • 举报
回复
你想实现的功能确实是一个web应用
但是你想不经客户端同意的情况下自动获取对方信息,那就违背了安全理念
正常情况下是绝对不允许的
xuetao121 2010-06-25
  • 打赏
  • 举报
回复
楼上你想的简单了,你如果可以获得对方的数据,那么你就可以做很多事情,这就是黑客行为,这个在flex里面非常严
如果你只想显示url的话,应该不难,现在还不太明白你说的如何和第三方交互的,所以也不知道应该怎么做。帮不上你,这方面没研究
iamzerg 2010-06-25
  • 打赏
  • 举报
回复
对,就是想在swf舞台上显示当前网页的url,我用以下的方法在本机和部分网站调试是没问题的:

ExternalInterface.call("function getURL(){return window.location.href;}")

但基于我在一楼说的一些情况和限制,在很多第三方网站好像都限制了script,所以运行出来就是没有结果的。不知道在第三方无法改变的情况,如何使用变通的方法实现上述功能,我看了一下好像很多网站比如56.com的swf都很灵活地嵌入到了第三方网站了,难道 56.com 不用script写的swf吗?



[Quote=引用 6 楼 xuetao121 的回复:]

楼上你想的简单了,你如果可以获得对方的数据,那么你就可以做很多事情,这就是黑客行为,这个在flex里面非常严
如果你只想显示url的话,应该不难,现在还不太明白你说的如何和第三方交互的,所以也不知道应该怎么做。帮不上你,这方面没研究
[/Quote]
iamzerg 2010-06-25
  • 打赏
  • 举报
回复

愿闻其详,不知具体思路如何?


[Quote=引用 8 楼 zhushoudong 的回复:]

要不这样,直接做个WEB服务 直接用他来完成
[/Quote]
iamzerg 2010-06-25
  • 打赏
  • 举报
回复
安全问题也是有分级分类的,不要一棍子打死啊。
在5楼也说了,只是想做一个简单的web引用,不同网站引用my.com的swf时,swf会判断当前加载的网页的url而显示不同的舞台内容,比如新浪网加载我的swf时会显示和新浪有关的舞台,搜狐加载……显示和搜狐有关的舞台。仅此而已,没有涉及什么回传不回传的。


[Quote=引用 7 楼 leemiki 的回复:]

你想实现的功能确实是一个web应用
但是你想不经客户端同意的情况下自动获取对方信息,那就违背了安全理念
正常情况下是绝对不允许的
[/Quote]
iamzerg 2010-06-24
  • 打赏
  • 举报
回复
没那么严重吧,木马一般是侵入到操作系统,而我说的只是一个正常的web应用。
其实我在1楼也注明了,并不要求回传数据,只要显示当前网页的url在flash舞台即可,简单来说就是想实现不同网站引用同一个swf文件,swf会判断url而显示不同的内容。


[Quote=引用 3 楼 sjbup 的回复:]
你想获取第三方网站的数据然后传回来,这个行为和木马有什么区别??
别做这个打算了。
[/Quote]
leemiki 2010-06-24
  • 打赏
  • 举报
回复
楼主的问题似乎跟安全机制有关,flash/flex在这方面做了严格的限制!要实现这工能也不是不可能,不过要懂点类似黑客的技术
叔叔兜里有糖 2010-06-24
  • 打赏
  • 举报
回复
你想获取第三方网站的数据然后传回来,这个行为和木马有什么区别??
别做这个打算了。
iamzerg 2010-06-24
  • 打赏
  • 举报
回复
如果第三方网站是我自己的,那怎么都好办。关键是“第三方”只允许上传swf。

[Quote=引用 1 楼 fw176170847 的回复:]

用swf来传数据?
你不如在第三方写个xml流给你自己网站呢
[/Quote]
fw176170847 2010-06-24
  • 打赏
  • 举报
回复
用swf来传数据?
你不如在第三方写个xml流给你自己网站呢

4,328

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计 Flex
社区管理员
  • Flex
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧