它是wwwroot,C,托管资产的根虚拟目录,还是资产所在的同一文件夹?
这意味着如果我有一个带有子目录'swf'的虚拟目录'virdir',它实际上就像C:\ somedir\assets\swf \,那么crossdomain.xml需要去哪里以便我的swf应用程序位于不同的服务器上可以访问swfs?
所以如果我把 - http://xxx.xx.xx.x/website/website.html 并尝试在swf中使用HTTPService联系 - https://yyy.yy.yy.y/resources/script,我得到沙盒错误.如果我 在浏览器中放入 - https://yyy.yy.yy.y/crossdomain.xml并访问它,那么crossdomain文件中的所有内容都可以.我回去尝试使用HTTPService - http://xxx.xx.xx.x/website/website.html 现在一切正常,直到我关闭我认为清除缓存的浏览器.
********的crossdomain.xml*********
<?xml version="1.0" ?>
<cross-domain-policy>
<site-control permitted-cross-domain-policies="master-only"/>
<allow-access-from domain="*"/>
<allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>
Run Code Online (Sandbox Code Playgroud)
********动作脚本*************
Security.loadPolicyFile("https://xxx.xx.xx.x/crossdomain.xml");
Run Code Online (Sandbox Code Playgroud) 我最近开始整理Facebook Connect AS3应用程序,并通过Graph API检索对象和图像.
在本地运行的任何地方,我收到以下形式的安全错误:
SecurityError:错误#2122:安全沙箱违规:Loader.content:xxxx无法访问http://photos-a.ak.fbcdn.net/xxxx.jpg
策略文件是必需的,但加载此媒体时未设置checkPolicyFile标志.
如果我添加一行表单:
Security.loadPolicyFile("ht_tp://photos-a.ak.fbcdn.net/crossdomain.xml");
- 然后我对该服务器很好,但似乎有任意数量的域有照片 - [letter]格式.我已经在字母表中添加了一个 - 它很高兴地成功地检索了跨域文件 - 但它似乎不是一个很好的解决方案,并且不适应Facebook 将来可能实现的任何新托管设置.
我考虑过的一件事是在每个图像的基础上检索跨域策略文件,在发出图像请求之前从图像URL捕获域.不幸的是,至少通过Graph解决方案(而且我没有仔细查看其他解决方案),他们的服务器在发出请求后解析图像URL,来自更通用的内容:
ht_tps://graph.facebook.com/ [OBJECTID] /照片?类型=&小的access_token = [的accessToken]
有没有人找到更可靠的方法来确保在没有安全沙箱违规的情况下检索图像?或者Facebook是否保留了开发人员需要关注的明确列表?
谢谢!
我在域xyz.com上有一个网页,其中有一个从cdn domain cdn.xyz.com下载的javascript.浏览器是否考虑通过javascript跨域调用在xyz.com(xyz.com/service.svc)上调用服务,因为js是从cdn.xyz.com下载的?
如果是的话,cdn.xyz.com上的javascript是否可以在xyz.com上调用服务而无需返回jsonp的服务?
浏览器在从javascript进行服务调用时会考虑哪个域?它是从javascript下载的域还是主要请求的域?
我正在尝试将Gravatars加载到Flash中.幸运的是,他们提供了一个crossdomain.xml文件http://en.gravatar.com/avatar/crossdomain.xml
我的代码:
Security.loadPolicyFile("http://en.gravatar.com/avatar/crossdomain.xml");
var loader:Loader = new Loader();
loader.load(new URLRequest("http://en.gravatar.com/avatar/" + gravatar + "?s=35&d=identicon"));
Run Code Online (Sandbox Code Playgroud)
但我仍然收到这个错误:
SecurityError:错误#2123:安全沙箱违规:LoaderInfo.content:[...]无法访问http://en.gravatar.com/avatar/97fbce86a5bbc520450168603172cd9e?s=35&d=identicon.没有授予访问权限的策略文
at flash.display :: LoaderInfo /获取
PiecePlayerSmall/onLoadComplete()上的内容()
我还监控了Flash文件发送的流量.它要求:
任何有关使其工作并减少对gravatar.com的请求数量的建议.
编辑: 以下代码工作,感谢雅各布
Security.loadPolicyFile("http://en.gravatar.com/avatar/crossdomain.xml");
var context:LoaderContext = new LoaderContext();
context.checkPolicyFile = true;
context.applicationDomain = ApplicationDomain.currentDomain;
var request:URLRequest = new URLRequest(
"http://en.gravatar.com/avatar/" + gravatar + "?s=35&d=identicon");
var loader:Loader = new Loader();
loader.load(request, context);
this.addChild(loader);
Run Code Online (Sandbox Code Playgroud)
注意:请勿尝试直接在Event.COMPLETE中访问内容
我在Flash中编写了一个简单的上传组件,但由于安全沙箱错误,我现在遇到上传问题.我现在知道这是因为我从一个域上传到另一个域,但是1,这曾经工作过,2,我已经通过将它放在我正在服务的域的根目录中实现了一个跨域xml文件从.我的电影顶部还有以下代码:
System.security.allowDomain("*");
Run Code Online (Sandbox Code Playgroud)
这是计划,从admin.subdomain.serveraddress.net上传到serving.serveraddress.net,但它不起作用!
以下是跨域文件代码:
<?xml version="1.0" encoding="UTF-8"?>
<cross-domain-policy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.adobe.com/xml/schemas/PolicyFile.xsd">
<allow-access-from domain="*.serveraddress.net" />
</cross-domain-policy>
Run Code Online (Sandbox Code Playgroud)
上述XML应该有效吗?救命!:)
如何规避Silverlight跨域安全法?
这一点是我需要围绕跨域调用 - 浏览器或客户端 - 在服务器上托管的每个客户端访问策略文件配置时允许的.
无论如何?文章?库?
我有一个位于domainA的flash应用程序需要加载来自Amazon S3存储桶的swf.在加载时,我收到以下错误."Error #2044: Unhandled securityError:. text=
"
我已经将一个跨域文件放入存储桶中并假设可以解决这个问题.我怎样才能解决这个问题?
我阅读了很多关于使用Flash,Javascript等进行跨站点脚本编写的内容,并且还发现了一些列表,其中包含一个允许从任何服务器访问的crossdomain.xml的网站.例如,flickr.com信任所有域.
有人可以解释一下为什么这似乎是安全的并且不会导致会话劫持等攻击?是因为那些crossdomain.xml仅在子域上有效,而攻击者无法获取会话密钥吗?
我们正在将文件从HTTP uri方案上传到我们的S3.这意味着,我们的上传器脚本在我们的服务器中.我们使用S3相应地签署表格.我们的crossdomain.xml文件如下所示:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>
Run Code Online (Sandbox Code Playgroud)
我应该secure="false"
进去allow-access-from
吗?例如:
<allow-access-from domain="*" secure="false" />
Run Code Online (Sandbox Code Playgroud)
有什么含义secure="false"
?我已经读过这个和这个,但是不太了解它.
第二,应该domain=*
是一个真正的域名?即我们的域名?那么http://foobar.com和http://www.foobar.com?
我试图抓取一个带有actionscript的网页,但不断收到此错误(例如试图抓住github.com):
[SWF] /get-webpage.swf - 解压缩后2,708字节错误:请求者从 http:// localhost:4567/get-webpage.swf请求资源http://github.com 由于缺乏策略而被拒绝文件权限.
*安全沙箱违规* 与http://github.com的连接暂停 - 不允许从http:// localhost:4567/get-webpage.swf
有没有办法在Actionscript中使这个工作?该crossdomain.xml
文件如何发挥作用?根据我的理解,一个网站从crossdomain.xml
根本上说明了一个swf可以访问他们的东西.那是对的吗?我需要做什么才能完成上述工作?我正在使用的代码基本上是这样的:
var request:URLRequest = new URLRequest("http://github.com")
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, complete);
loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, error);
loader.load(request);
function complete(event:Event):void {
trace(event.target.data);
}
function error(event:SecurityErrorEvent):void {
trace(event.text);
}
Run Code Online (Sandbox Code Playgroud)
在HTML文件中使用此文件:
var flashvars = {};
var params = {allowscriptaccess: "always"};
var attributes = {id: "my_flash", name: "my_flash"};
swfobject.embedSWF("/get-webpage.swf", "flash_content", "50%", "50%", "10.0.0", "playerProductInstall.swf", flashvars, params, attributes, swfHasLoadedSir);
Run Code Online (Sandbox Code Playgroud)
有可能绕过那个安全错误吗?
如果将我的Web服务器配置为允许他中的跨域请求crossdomain.xml
,并通过CORS
(Access-Control-Allow-Origin:site111.org)拒绝它们,则在网站(site222.com)的情况下,将遵循该配置)向我的Web服务器发送跨域HTTP请求?
据我了解,crossdomain.xml
是一个仅涉及Flash请求的策略文件,但不确定是否在所有跨域请求中或仅来自Javascript的请求中都应用了CORS
crossdomain.xml ×12
flash ×6
apache-flex ×2
javascript ×2
security ×2
actionscript ×1
amazon-s3 ×1
c# ×1
cors ×1
cross-domain ×1
facebook ×1
gravatar ×1
iis ×1
upload ×1