flash跨域通信,依据的是crossdomain.xml文件。该文件配置在服务端,一般为根目录下,限制了flash是否可以跨域获取数据以及允许从什么地方跨域获取数据。
如果crossdomain.xml文件配置allow-access-from为*,将允许任何域下的flash进行跨域请求。可能会导致“跨站点伪造请求”或“跨站点跟踪”(“跨站点脚本编制”的变体)之类的攻击。
举个例子:
1、www.a.com域下不存在crossdomain.xml文件,则不允许除了www.a.com域之外的其他任何域下的flash进行跨域请求。
2、www.a.com域下存在crossdomain.xml文件,如若配置 allow-access-from 为www.b.com,则只允许www.b.com域下的flash进行跨域请求,以及来自自身域www.a.com的网络请求。 crossdomain.xml需严格遵守XML语法,有且仅有一个根节点cross-domain-policy,且不包含任何属性。
在此根节点下只能包含如下的子节点:
site-control
allow-access-from
allow-access-from-identity
allow-http-request-headers-from
如果crossdomain.xml文件配置allow-access-from为*,将允许任何域下的flash进行跨域请求。
【中危】:可获取数据
【低危】:allow-access-from属性为*
【低危】:allow-http-request-headers-from属性为*
【低危】:site-control标签的permitted-cross-domain-policies属性为 all
网站根目录下的 crossdomain.xml 文件指明了远程 Flash 是否可以加载当前网站的资源(图片、网页内容、Flash等)。如果文件配置allow-access-from为*,可能导致遭受跨站请求伪造(CSRF)攻击。
1、allow-access-from标签的domain属性检测:domain属性应根据最小化原则按需设置,仅允许可信任的来源跨域请求本域内容。禁止将该属性值设置为“*”。
2、allow-http-request-headers-from标签的domain属性检测:domain属性应根据最小化原则按需设置,仅允许可信任的来源向本域跨域发送内容。禁止将该属性值设置为“*”。
3、site-control标签的permitted-cross-domain-policies属性检测:根据业务的实际需求及可行性,对该属性做相应设置。禁止将该属性值设置为“all”。