Los sockets no funcionan en Flash Player

En las versiones de Adobe Flash Player posteriores a 9.0.115.0, es posible que ninguna de las configuraciones siguientes funcione adecuadamente:

  • Un archivo SWF intenta que una conexión de socket o de XMLSocket vuelva a su propio host, sin efectuar una llamada loadPolicyFile para recuperar un archivo de política de sockets.
  • Un archivo SWF intenta que una conexión de socket o de XMLSocket vuelva a su propio host, y carga un archivo de política en el que no enumera su propio dominio entre los dominios permitidos.
  • Un archivo SWF intenta que una conexión de socket o de XMLSocket vuelva a su propio host, con un archivo de política de HTTP que concede permiso.

Consulte la sección Diagnóstico para obtener instrucciones para determinar si este cambio afecta a su sitio.

Razón

Las versiones de Flash Player posteriores a 9.0.115.0 cambian los requisitos de permisos para conexiones de sockets y los archivos de política de HTTP ya no autorizan conexiones de socket. Flash Player tiene dos tipos de archivos de política:

  • Archivos de política de HTTP, que son archivos crossdomain.xml de un servidor que definen si los archivos SWF de otros dominios pueden cargar el contenido del servidor.
  • Archivos de política de socket, que definen los puertos con los cuales Flash Player se puede conectar mediante conexiones de socket o de XMLSocket.

En versiones anteriores, un archivo de política de sockets, que es un archivo de política implementado por un socket, no tenía que conectarse a puertos mayores que 1024, si

  • el dominio que servía al archivo SWF era el mismo que el dominio de la conexión de socket y
  • el dominio que servía alojaba un archivo crossdomain.xml.

Esta configuración más antigua suponía un riesgo para los clientes, ya que cada vez había más servicios importantes que se servían desde puertos mayores que 1024. Este cambio también ayuda a mitigar la posibilidad de un ataque de reenlace de DNS mediante sockets de Flash Player para conectar con el host de la víctima. Para mitigar este problema, Flash Player ahora requiere un archivo de política de sockets para todas las conexiones de socket, sea cual sea el puerto de destino, y de si hay o no un archivo crossdomain.xml. Ahora hay una ubicación principal fija para archivos de política de sockets en el puerto 843. El archivo de política de este puerto podrá definir metapolíticas que establecen si se permite la presencia en el host de otros archivos de política de sockets. De forma predeterminada, se reconocen todos los archivos de política de sockets.

Si los archivos SWF antes no podían conectarse con el host de origen en puertos mayores que 1024 por la presencia de un archivo crossdomain.xml file, ahora debe tener un archivo de política de sockets. El archivo de política de sockets se puede servir desde el puerto de política de sockets principal (843) o desde el mismo puerto de la conexión de socket.

Diagnóstico

Consulte la información siguiente para determinar si este cambio afecta a su sitio. Flash Player 9.0.115.0 incorporó una nueva función de registro de archivos de política. El registro de archivos de política muestra mensajes de cada evento relativo a archivos de política: intentos de recuperarlos, procesamientos correctos e incorrectos en ellos, así como el destino de las solicitudes que dependen de dichos archivos. Encontrará una referencia exhaustiva sobre los mensajes del registro de archivos de política en el Apéndice B de Cambios de los archivos de política en Flash Player 9 y 10.

Para utilizar el registro de archivos de política:

  1. Instale una versión de depuración de Flash Player 9.0.115.0 o posterior. Puede utilizar cualquier tipo de Flash Player: ActiveX, plugin o independiente. Para obtener la versión de depuración de Flash Player, acceda al centro de descargas de Flash Player.
  2. Determine la ubicación del archivo de configuración mm.cfg. Es un archivo de configuración de depuración general que depura versiones de Flash Player leídas al inicio. El archivo mm.cfg se ubica en el directorio de inicio. Por ejemplo:

    • Windows: C:\Documents and Settings\nombre_usuario
    • Windows Vista: C:\Usuarios\nombre_usuario
    • Mac OS y Linux: /home/nombre_usuario
  3. Cree el archivo mm.cfg si no existe; a continuación, añada una o las dos líneas siguientes:

    • PolicyFileLog=1 # Activa el registro de archivos de política
    • PolicyFileLogAppend=1 # Opcional; no borra el registro al inicio
    • Si PolicyFileLogAppend no se ha activado, cada archivo SWF nuevo de nivel raíz borrará el archivo de registro. Si policyfilelogappendpolicyfilelogappend<> se ha activado, el contenido antiguo del archivo siempre se mantiene y el archivo de registro crecerá al final.

    Si se cargan varios archivos SWF de nivel raíz durante la prueba, seguramente querrá activar PolicyFileLogAppend. Ahora bien, si activa PolicyFileLogAppend, lo más seguro es que deba eliminar de forma manual el archivo de registro o bien eliminarlo periódicamente; de lo contrario, tendrá un tamaño muy grande y será difícil determinar el final de la salida anterior y el comienzo de la nueva.

  4. Busque la ubicación en la que se escribirá policyfiles.txt, el registro de archivos de política. No necesariamente debe existir ya; Flash Player lo creará la próxima vez que se ejecute un archivo SWF. El archivo policyfiles.txt puede estar en las ubicaciones siguientes:
    • Windows: C:\Documents and Settings\nombre_usuario\Datos de programa\Macromedia\Flash Player\Logs
    • Windows Vista: C:\Usuarios\nombre_usuario[ AppData]\Roaming\Macromedia\Flash Player\Logs
    • Mac OS: /Usuarios/nombre_usuario/Library/Preferences/Macromedia/Flash Player/Logs (es poco habitual que un programa escriba archivos de registro en el directorio Preferences, pero es lo que sucede en este caso)
    • Linux: /home/nombre_usuario/.macromedia/Flash_Player/Logs
  5. Para comprobar la configuración, ejecute cualquier archivo SWF en Flash Player; a continuación, cierre Flash Player (o el navegador).

  6. El archivo policyfiles.txt ahora se encuentra en el directorio Logs. Compruebe que tenga una hora de modificación reciente. Ábralo y verifique que al menos haya un mensaje ("Archivo SWF de nivel raíz cargado"). De ser así, significa que el registro de archivos de política funciona.

  7. Acceda al contenido del archivo SWF que necesita probar. Ejecute el contenido en cualquiera de las situaciones que hará que encuentre archivos de política. Cierre Flash Player cuando hay concluido.
  8. Consulte el archivo policyfiles.txt para obtener información sobre lo sucedido con los archivos de política durante la ejecución de prueba. Si encuentra mensajes que no están claros, consulte Cambios de los archivos de política en Flash Player 9 y 10.

  9. Si en el archivo policyfiles.txt encuentra información útil que debe guardar para consultas en el futuro, cambie el nombre del archivo de registro o trasládelo a otro directorio, con el fin de que Flash Player no sobrescriba el archivo de registro cuando se vuelva a ejecutar.

Solución: crear un archivo de política de sockets que permita la conexión a host

Para solucionar este problema, debe crear un archivo de política de sockets que permita la conexión al host. Este archivo de política se puede servir desde el puerto 843 de política de sockets principal o desde el puerto de destino de la conexión de socket. El archivo de política de sockets debe incluir todos los dominios que se permiten conectar con el socket, incluido él mismo. Si el archivo de política de sockets se aloja en la ubicación de archivo de política de sockets principal, incluya metapolíticas en las que se permita la ubicación de archivos de política de sockets.

Los cambios en los archivos de política de sockets se describen de manera detallada en Cambios de los archivos de política en Flash Player 9 y 10. Los mensajes de registro se describen de manera detallada en el apéndice B.

Referencias adicionales

Para obtener información sobre seguridad de Flash Player, visite la página de seguridad de Flash Player.

Los cambios en los dominios y los archivos de política de sockets se describen de manera detallada en Cambios de los archivos de política en Flash Player 9 y 10.

Esta obra está autorizada con arreglo a la licencia de Reconocimiento-NoComercial-CompartirIgual 3.0 Unported de Creative Commons.  Los términos de Creative Commons no cubren las publicaciones en Twitter™ y Facebook.

Avisos legales   |   Política de privacidad en línea