是否有可能让Flex应用程序只能从我的域运行?所以用户不能复制.swf并在本地启动它。如何限制Flex应用程序只能从我的网站运行?
回答
在很多情况下,由于与crossdomain.xml关联的安全模型,这将不起作用。
http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html
例如说,我有了一个服务调用一个Flex应用程序,并登录到我的后端数据库(也许是PHP和MySQL)。除非我在crossdomain.xml策略文件中明确启用它,否则应用程序将无法与我的服务器通信,除非swf文件直接从我的域加载。如果应用程序是本地的,它会看起来像我的服务器像localhost试图通过flex应用程序访问我的后端。因此,默认情况下,除非在crossdomain.xml中放置了明确的规则以允许从本地主机访问,否则这将不起作用。同样,某人不能简单地将swf放在另一台服务器上,并尝试从我的服务器进行访问,除非将该远程服务器添加到crossdomain.xml策略中。
所以回到你的问题。显然,如果您的flex应用程序非常简单并且不尝试对服务器进行服务调用,则此crossDomain.xml内容并不适用。例如,如果您有简单的游戏,只需在弹性游戏中加载和播放而无需额外的服务器调用。
如果你想保护你的应用程序,你可以在启动顺序中有一个基本的“电话回家”程序,这个程序会对你的网站进行非常简单的服务器调用。它不一定非常复杂,在您的应用程序启动时只需要一个往返服务电话。也许检查存储在PHP端的变量中的简单键或字符串,并且除非该键有效,否则不要让flex应用程序运行。你可以在动作中硬编码预期的键。或者可能有一个基本的记录器来跟踪应用程序启动的次数并将计数存储在数据库中或其他东西。主要的是不要让应用程序完全启动,直到对服务器的这个请求返回了有效的结果。
如果你有这个地方,那么crossdomain.xml策略将会启动,如果有人下载你的SWF,它不应该工作,因为它会尝试从本地主机到你的服务器进行调用。或者,如果他们窃取您的应用程序并将其托管在他们的网站上,它也不应该起作用。
请检查LiveDocs上的flash.System.Capabilities.playerType。
最简单的办法或许金正日检查的
Application.application.loaderInfo.url
在应用程序启动(例如在applicationComplete事件)的值,并与您的网站域名相匹配。
- 1. 如何限制只有我的Android应用程序访问我的网站
- 2. 如何使用我的Adobe Flex应用程序从网站复制文本?
- 3. 限制公共webapi只限于我的应用程序和网站
- 4. 如何限制Android应用程序只运行一段时间?
- 5. 如何在智能手机应用程序上运行网站?
- 6. 如何限制网络应用程序从特定的电脑上运行
- 7. 运行Flex应用程序
- 8. 限制FB应用程序安装到我的网站
- 9. 如何从我的应用程序运行Facebook应用程序
- 10. 未能在我的手机上运行Flex应用程序
- 11. 如何制作一个只能从我的网站上使用的web服务(WSDL) android应用程序?
- 12. Android开发:限制用户只运行和使用我的应用程序
- 13. 限制应用程序只能在4英寸的设备上运行IOS
- 14. 如何运行阻止网站的应用程序?
- 15. 如何限制MFC应用程序只能从已知的USB闪存驱动器运行
- 16. 如何限制应用程序只能从已知的USB闪存驱动器运行?
- 17. 让我的应用程序只运行应用程序
- 18. 如何限制该应用程序不会在平板电脑上运行,只能在手机上运行
- 19. 我如何运行cakephp网站没有应用程序名称在网址中?
- 20. 如何限制我的网站只能使用IE8及更高版本
- 21. 在我的网站上运行python,C,C++应用程序
- 22. 如何限制.exe文件从C#WPF应用程序只
- 23. 如何从我的Android应用程序中喜欢网站
- 24. 如何从控制台应用程序运行程序?
- 25. 如何限制网站只能通过移动代码访问
- 26. 当我从我的网站使用应用程序时,facebook权限问题?
- 27. Silverlight OOB应用程序是否仍可以从网站运行
- 28. 如何限制用户从我的网站上下载视频?
- 29. iPhone应用程序只显示网站
- 30. 限制网站的Java程序