有人可以发布一个格式良好的crossdomain.xml示例吗?

80

我看到Adobe在Flash 9-10中加强了crossdomain.xml的限制,我想知道能否有人可以给我复制一个可用的样本。在Adobe网站上很难找到最近的示例。


这可能看起来非常明显,但作为一名有着10年经验的Flash开发人员,我可以告诉你,我实施过的每个策略文件都失败了,甚至没有假装工作……直到今天。原来你需要自己实际加载策略文件。文档让它听起来像是Flash会在出现SecuritySandbox错误之前自动寻找crossdomain.xml文件。所以如果你遇到困难,请确保你正在加载策略文件:Security.loadPolicyFile("http://www.example.com/crossdomain.xml") - 1owk3y
5个回答

103

这是我一直在开发中使用的:

<?xml version="1.0" ?>
<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>

这是一种非常自由的方法,但对于我的应用程序来说还不错。

正如其他人在下面指出的那样,请注意其中存在的风险。


30
在某种程度上,这种方法是有效的,但请注意风险:这意味着任何网站都可以代表用户向您的网站发送请求,包括cookie等,并无障碍地读取响应。对于大多数Web应用程序而言,这是一个巨大的安全漏洞。因此,虽然这种方法有其适用之处,请了解风险并在必要时采取严格的白名单方法(对于生产应用程序几乎总是如此)。 - Matchu
3
不要在开发之外使用此功能。这与 hardened PHP 项目 中的“糟糕配置的 crossdomain.xml”示例完全相符。 - Greg K
2
如果您自己正在提供文件,则请记得设置正确的contentType:“text / x-cross-domain-policy” - fiffy
只有一种情况下,这种做法在生产环境中才是可接受的:当您将其安装在仅为其他域上的应用程序提供静态文件的域上时。例如:您拥有一个名为“images.mydomain.com”的子域,它为您网站的所有图像提供服务(可能使用某种CDN),但除此之外没有其他任何内容。 - Periata Breatta

34

如果您正在使用Web服务,您还需要使用“allow-http-request-headers-from”元素。这是我们的默认开发“允许一切”的策略。

<?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>

22
也许你应该提到这可能会有什么危险,以及如何避免? - philfreo
在哪里保存这个XML文件? - Sajitha Rathnayake
我总是使用Adobe的方案。这里有一个松散的例子:http://stackoverflow.com/a/26433744/257319 - user257319
保存在您希望其影响的域级别上。例如:http://www.example.com/crossdomain.xml - iedoc

30

看看Twitter的:

http://twitter.com/crossdomain.xml

<?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="twitter.com" />
    <allow-access-from domain="api.twitter.com" />
    <allow-access-from domain="search.twitter.com" />
    <allow-access-from domain="static.twitter.com" />
    <site-control permitted-cross-domain-policies="master-only"/>
    <allow-http-request-headers-from domain="*.twitter.com" headers="*" secure="true"/>
</cross-domain-policy>

1
或者 https://www.adobe.com/crossdomain.xml 或者 https://github.com/crossdomain.xml 或者 https://twitter.com/crossdomain.xml 或者 https://www.facebook.com/crossdomain.xml 或者 https://www.google.com/crossdomain.xml 或者 https://www.bing.com/crossdomain.xml 或者 https://medium.com/crossdomain.xml 或者 https://developers.google.com/crossdomain.xml - Null

9

在生产网站中,这似乎是合适的:

<?xml version="1.0"?>
<cross-domain-policy>
<allow-access-from domain="www.mysite.com" />
<allow-access-from domain="mysite.com" />
</cross-domain-policy>

6

曾经有一份crossdomain.xml版本与HTML5 Boilerplate捆绑在一起,这是多年迭代开发和社区共识的产物。 但是,它已经从代码库中删除。我在此原封不动地复制了它,并在下面包含了一个链接,指向它被删除的提交。

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
  <!-- Read this: https://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html -->

  <!-- Most restrictive policy: -->
  <site-control permitted-cross-domain-policies="none"/>

  <!-- Least restrictive policy: -->
  <!--
  <site-control permitted-cross-domain-policies="all"/>
  <allow-access-from domain="*" to-ports="*" secure="false"/>
  <allow-http-request-headers-from domain="*" headers="*" secure="false"/>
  -->
</cross-domain-policy>

在 #1881 中被删除
https://github.com/h5bp/html5-boilerplate/commit/58a2ba81d250301e7b5e3da28ae4c1b42d91b2c2


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接