Este tip me hizo falta por mucho tiempo y me valió horas y horas de investigación.
En donde trabajo tenemos aplicaciones Flash que he desarrollado, y en su mayoría se alimentan de datos por medio de WebServices. Todo funcionaba impecable hasta que se actualizó a Flash Player 10.
Los datos no eran enviados. Después de buscar mucho, me enteré que la seguridad en esta versión es aún mayor y que el archivo crossdomain.xml tiene que tener algunas modificaciones.
Las modificaciones más importante son la asignación de cual puerto es usado para el traspaso de información y el atributo de seguridad (secure) para paginas HTTPS.
Paso la forma correcta de armar el crossdomain.xml, y que se tenga acceso total al contenido del WebService.
Código :
<?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="*" to-ports="*" secure="true" /> <!-- This domain can accept any header from a SWF file on any subdomain of example.com and supports https requests --> <allow-http-request-headers-from domain="*" headers="*" secure="true" /> </cross-domain-policy>
También Adobe habla al respecto..
Espero sea de ayuda a alguien que pase por la misma situación.
Saludos
Martín Zarzar
¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.
Por master_of_puppetz el 16 de Diciembre de 2008
Por Martincho7 el 16 de Diciembre de 2008
Saludos
Martín
Por gracias tio! el 17 de Diciembre de 2008
Por Martincho7 el 17 de Diciembre de 2008
Saludos
Martín
Por Mezcal el 18 de Diciembre de 2008
Por Danisam el 07 de Enero de 2009
Por Martincho7 el 07 de Enero de 2009
Salu!
Martín
Por Frank el 11 de Febrero de 2009
Por Martincho7 el 11 de Febrero de 2009
Frank-blog :
Buenas Frank-blog,
El archivo crossdomain.xml debe ir en la raiz del sitio ej:
Código :
pero debes tener en cuenta que el RSS al que consultas esta en el mismo servidor. En caso contrario si el RSS esta fuera de tu servidor tienes que pedir que pongan el crossdomain en ese servidor.Espero haber sido de ayuda.
Saludos
Martín
Por Frank el 12 de Febrero de 2009
Por Cocoliza el 19 de Febrero de 2009
GRacias!
Por Cocoliza el 19 de Febrero de 2009
\jboss\server\default\deploy\jbossweb-tomcat55.sar\ROOT.war\ y si, poniendolo ahi funciono perfectamente, pero no encuentro en donde deba ponerlo para SunOne. saludos!
Por MickyMike el 19 de Mayo de 2009
No sabes las horas de stress mental que me ahorraste!
Gracias!
Por juan camilo acosta a el 27 de Mayo de 2009
Me salvaste mi dinerito de la paga jejjeje
graaaaaaaaaaaaaaacias
Por yoni el 01 de Octubre de 2009
Por Martincho7 el 01 de Octubre de 2009
El archivo crossdomain.xml debe ir en el servidor donde corre el webservice.
Saludos
Martín
Por nigma el 26 de Octubre de 2009
Alguien sabeque puede estar pasando??
Por Martincho7 el 26 de Octubre de 2009
Si esta el archivo tal cual publicado y está puesto en la raíz del server a donde haces el Upload tiene que funcionar.
Para despejar dudas cuando lo probas desde Flash al desarrollar funciona? Si da error que error?
Saludos
Martín
Por Jorgge.a el 30 de Octubre de 2009
Por Martincho7 el 30 de Octubre de 2009
Saludos
Martín
Por Jonatan el 22 de Enero de 2010
Por mutiu el 18 de Febrero de 2010
Por Martincho7 el 18 de Febrero de 2010
NO debe estar en el mismo servidor que tienes el SWF, pero seguramente puede pasar que quieras obtener información de un servidor al que no puedas meterle el crossdomain.xml.
(ej: http://www.midominio.com/miflash.swf ===> http://www.yahoo.com/tiempo.xml )
De todas formas tengo un “truquito” que uso a menudo para cuando pasa este problema, pero para poder usarlo tienes que tener PHP en tu servidor.
El truco conciste en usar PHP (proxy.php) para traer los datos desde otro dominio y mostrarlo en una pagina PHP en TU dominio.
El código es el siguente:
Código :
Para usarlo desde flash sería algo así:
Código :
( en caso que existan parámetros en vez de usar "&" usa "|" ej: ....tiempo.xml?par1=ppp|par2=jjj )
De esta forma tu SWF lee una pagina local y no necesita usar el crossdomain.xml en ningún otro lado.
Espero te sirva a ti o cualquiera que pase por aquí.
Saludos
Martín
Por hkm el 28 de Febrero de 2010
Una política abierta del crossdomain.xml permite, por ejemplo, ataques CSRF.
El script en php que te permite especificar que file quieres leer permite obtener archivos locales.
Por leoncitoamx el 14 de Abril de 2010
Por Carlos el 04 de Mayo de 2010
Por Martincho7 el 04 de Mayo de 2010
Saludos
Martín
Por Agustin Amenabar el 19 de Mayo de 2010
Por unlector el 05 de Junio de 2010
En el archivo crossdomain, si se desea leer xml u otros documentos externos al dominio habría que especificar permiso para los puertos 80 y 443 únicamente, ya q el standar son esos puertos y no se m ocurre pensar q yahoo devolvería su xml por un puerto diferente, y sin q lo especifique claro.
El archvo de servidor, en este caso php, debería d enfocarse d otro modo, por ejemplo uno d ellos sería crear un array en el php con los posibles dominios a leer, por ejemplo:
$arDomain=array('https://www.cam.es/','http://www.yahoo.com/');
y en la url del php una variable con el valor de la posición del array q se desee, por ejemplo una varible llamada url, q cuando el swf solicite el script de servidor pida algo como:
dirscript.php?url=1&rute=tiempo.xml
y habría q tratar la varible url en el php de un modo similar a:
readfile($arDomain[$_GET[url]].$_GET[rute]);
Es decir q la url de yahoo debe quedar dentro del php.
Hay mucho más modos de hacerlo un poco más seguro, en cualquier caso recomiendo no usar los script de ejemplo q aquí se exponen, es una invitación a que se apoderen del sistema
Por sigoleyendo:) el 05 de Junio de 2010
dirscript.php?url=1&rute=tiempo.xml
se cambia a:
dirscript.php?url=a&rute=actualdominio.index
como se puede ver es igual de vulnerable, por eso se hace necesario definir algo como:
if($_GET[url]>=0&&$_GET[url]<count($arrDomain)){continue;}else{exit;}
Por JuAn-Q el 03 de Septiembre de 2010
de casualidad saben si no existe un listado de dominios de imagenes publicos donde el corssdomain ya este configurado... lo intente con photobucket .. pero no funciono...
Por Aldama el 14 de Diciembre de 2010
Por izzuk el 14 de Febrero de 2011
Por isidreMiquel el 17 de Marzo de 2011
vaya problema me has quitado de encima!
gracias
Por coc el 12 de Mayo de 2011
Por coco el 12 de Mayo de 2011
que bien que pregunte y mucho mejor que encontre
quien me respondiera.
Por CESAR el 09 de Febrero de 2012
<allow-access-from domain="*" />
</ cross-domain-policy>
Por lirask8 el 24 de Febrero de 2012
Por Renzo el 01 de Mayo de 2012
Ademas con que nombre lo guardo.
Espero respondan ........
Por master_of_puppetz el 01 de Mayo de 2012
Renzo-blog :
Ademas con que nombre lo guardo.
Espero respondan ........
Por alancran777 el 28 de Febrero de 2014