我已经实现了一个SWF应用程序,我将其托管到我的网站并使用object和embed标签加载它。
我发现外部网站使用上述html标记引用了相同的SWF文件。有没有办法阻止这些引用?
我尝试将X-Frame-Options设置为SAMEORIGIN,但它没有用。
提前谢谢。
答案 0 :(得分:1)
如果他们窃取你的SWF将其放在他们的域名上,请使用VC.One的建议。然后,如果他们正在将它链接起来......让我们做一些魔法。
当SWF加载相对网址时,请求(幸运的是)通过浏览器和浏览器检索相对于最顶层文档框架的网址。
无论如何,您的SWF仍然属于您的域,因此其安全沙箱会这样做。
将您的SWF分成两部分(让我们将它们命名为Outer和Inner,Outer首先启动,然后加载Inner),这些部分在彼此之间无法工作(共享classess,访问彼此的显示列表等)。 Domain将它们锁定到您的域,因此它们都不会从其他域启动。最后一步:让Outer通过 relative url加载内部。
如果不能分割SWF,那么使用服务器端脚本仍然会有更复杂的解决方案。
<强> UPD 强>
假设您的应用程序具有使用类B的类A.为了使上述技术工作,您需要仅使用类B编译Outer而仅使用类A编译内部,并且其中A使用B而不是编译时访问导入B 您应该使用运行时评估 B = getDefinition(&#34; B&#34;)作为类。如果真正的外部正确加载正版内部,那么getDefinition(&#34; B&#34;)确实会返回对B的类引用,并且所有B功能都可用。在任何其他情况下,getDefinition(&#34; B&#34;)将失败,A将无法正常运行。