Tutorial crossdomain.xml; No deje que los flex complicar!


Bueno, casi todo el mundo se ha cumplido con un error algo como esto:

Channel.Security.Error error Error # 2048: Violación de la seguridad Sandbox.

Inglés debería ser algo como: Violación de Seguridad Sandbox.

Esta en portugués simple y programador: Bronco en la solicitud. A veces no es fácil encontrar referencias a este problema.

El flash player (Sandobox) está cerrada y protegida por ella y no ser capaz de. Del Swf acceso a muchos recursos en otros servidores, y cuando este error que ocurre es simplemente porque nuestra aplicación está intentando acceder a otro servidor / que nuestro sitio . Este error puede ocurrir incluso en nuestro local de ensayo cuando nada .. (es raro pero puede suceder suceder) y el extraño de todo es que puede ocurrir incluso en el mismo servidor ... ver el ejemplo:

Tengo una aplicación (imaginaria) en: http://www.msdevstudio.com/teste/teste.swf que intenta tener acceso a la puerta de entrada de AMFPHP en http://msdevstudio.com/amfphp/gateway.php. Y el error se da por vencido ... pido, pero es el mismo sitio / servidor, es a causa de este error?

Simple, porque la dirección que se especifica para el gateway.php no tienen el "www".

¿No es extraño? Si establecer el vínculo en la parte superior de www http://msdevstudio.com/teste/teste.swf ahora funciona sin ningún tipo de errores ...

Hay cosas extrañas en este flash: p Pero me gusta!

Una de las soluciones para evitar siempre es comprobar los vínculos, pero en este caso es muy común sobre problemas similares suceder.

Todo este texto para explicar que hay una manera bastante fácil para superar estos problemas, y que deben ser estudiados porque en muchos casos será necesario (incluido el flex 4/flash 10), por lo que este es un archivo crossdomain.xml

Este archivo es un simple. Archivo XML que enumera las que pueden acceder al servidor, es decir, si el flash leer este archivo y ver que el archivo permite a todos acceder al servidor externo, el flash simplemente no dan ningún error.

Tome un ejemplo: (permitir el acceso del público)

<? Xml version = "1.0"?>
<cross-domain-policy>
<allow-access-from domain="*" />
</ Cruz-dominio-política>

o este: (sólo permite el acceso a determinados sitios)

<? Xml version = "1.0"?>
<cross-domain-policy>
<allow-access-from domain="*.example.com" />
<allow-access-from domain="www.servidorDoMeuAmigo.com" />
<allow-access-from domain="localhost" />
</ Cruz-dominio-política>

Una de estas sencillas piezas de código hará que el servidor está disponible para el flash acceder a él desde cualquier otro servidor (en el primer caso), o sólo unos pocos sitios (segundo caso). Un ejemplo práctico, sería mucho más fácil si todos los grandes sitios que ofrecen muchos servicios API'se persona tenía este archivo en su servidor. Una vez que el flash simplemente no tendría ningún problema para acceder a ellos ... ya que no sigan utilizando como puente en php o de otros del lado del servidor idioma que le permite conectarse a otros servidores.

En caso de que siga los pasos siguientes, una copia de los códigos en la parte superior y guardarlo como crossdomain.xml, y enviarlo a su servidor. Tipo: http://www.meuservidor.com/crossdomain.xml

Con Flex, que en su etiqueta la demanda:

<mx: Aplicación .... creationComplete = "init ()">

y el lugar de esta función:

private function init (). nula (

Security.allowDomain ( "http://www.meuservidor.com");

Security.loadPolicyFile ( "http://www.meusvidor.com/crossdomain.xml");
)

Dependiendo de los casos Security.allowDomain () puede ser suficiente, pero el ejemplo anterior es la más adecuada.

Se debe tener especial atención a las cuestiones de seguridad (que no hay muchos riesgos), pero debido a la posibilidad de cualquier aplicación que utilice mal uso de su servidor.

Espero que sea útil y que sobre todo ha desmitificar la confusión que se encuentra en la red cuando la demanda en el crossdomain.xml.

Abrazar.

la versión en formato pdf disponible temporalmente.
Dejar un comentario o una licencia Trackback

Déjanos tu comentario

Su dirección de correo electrónico nunca es publicado o compartido. Los campos obligatorios son marcados con un *