Arquivo crossdomain.xml

Com o crescente aumento de aplicações AIR e Flex, integração entre servidores e a utilização crescente de WEBservice, se torna importante conhecer um pouco do crossdomain. O Crossdomain é um arquivo XML com as permissões de acesso ao servidor, podendo impedir ou liberar que aplicações Flash se comuniquem com o servidor.

Para que sua aplicação consiga acessar dados de outro domínio, é necessário um arquivo chamado crossdomain.xml, que deve residir na raiz do servidor (ou outro diretório, com ajuda de Actionscript para mostrar o caminho) e é automaticamente procurado pelo Flash Player assim que uma requisição for feita àquele servidor.

Vamos ao básico!

O arquivo crossdomain.xml deve conter uma única tag (tag pai) chamada <cross-domain-policy> e dentro dela uma ou mais tags <allow-access-from> (tag filho), informando os domínios permitidos.

Para especificar os domínios permitidos nas tags <allow-access-from>, é possível utilizar:

- uma simples URL;
- um endereço IP;
- ou um * seguido de partes do domínio para abranger um range maior de possibilidades;

Ficou complicado? Veja o exemplo:

<cross-domain-policy>
    <!?aceitar acesso do domínio www.mxml.com.br-->
      <allow-access-from domain="www.mxml.com.br" />
    <!?aceitar acesso do domínio mxml.com.br e qualquer subdomínio -->
      <allow-access-from domain="*.mxml.com.br " />
    <!?aceitar acesso somente do IP informado -->
      <allow-access-from domain="127.0.0.1" />
    <!?liberado para qualquer domínio (Cuidado) -->
      <allow-access-from domain="*" />
</cross-domain-policy>

Para cada domino que você deseja liberar o acesso, deve-se inserir uma tag <allow-access-from> e especificar o domínio.

Caso você deseje liberar o acesso para qualquer domínio, basta inserir apenas uma tag <allow-access-from> com o atributo domain=?*?.

Veja meu caso. Possuo um crossdomain em /crossdomain.xml, e o mesmo possui a seguinte estrutura:

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

No meu caso liberei para qualquer servidor acessar, por ser um server de compartilhamento de informação, e com isso qualquer dado existente neste servidor, poderá ser utilizado por qualquer pessoa que queira testar seus aplicativos, ou mesmo os testes que passo aqui.

E para acessar dados em um servidor HTTPS de um servidor HTTP, basta adicionar um novo atributo na tag <allow-access-from> chamado secure=?false? e definir seu valor como false. O valor default dele é true. Exemplo:

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

Baseado de Cross-Domain Policy

Fique por dentro de nossas novidades, ideias e atualizações