Les sockets ne fonctionnent pas dans Flash Player

Avec les versions d’Adobe Flash Player antérieures à la version 9.0.115.0, les configurations suivantes peuvent ne pas fonctionner comme prévu :

  • Un fichier SWF tente une connexion de socket ou XMLSocket à son propre hôte, sans exécuter d’appel loadPolicyFile pour récupérer un fichier de stratégie de socket.
  • Un fichier SWF tente une connexion de socket ou XMLSocket à son propre hôte, et charge un fichier de stratégie qui ne répertorie pas son propre domaine dans les domaines autorisés.
  • Un fichier SWF tente une connexion de socket ou XMLSocket à un hôte, sans fichier de stratégie HTTP octroyant l’autorisation.

Voir la section Diagnostic pour savoir comment déterminer si ce changement affecte votre site.

Cause

Les versions de Flash Player ultérieures à la version 9.0.115.0 modifient les exigences d’autorisation pour les connexions de socket, et les fichiers de stratégie HTTP n’autorisent plus les connexions de socket. Flash Player utilise deux types de fichier de stratégie :

  • Les fichiers de stratégie HTTP, qui sont des fichiers crossdomain.xml sur un serveur qui définissent si les fichiers SWF issus d’autres domaines peuvent charger le contenu de ce serveur.
  • Les fichiers de stratégie de socket, qui définissent les ports sur lesquels Flash Player peut se connecter à l’aide de connexions de socket ou XMLSocket.

Dans les versions antérieures, un fichier de stratégie de socket, qui est un fichier de stratégie déployé par un socket, n’était pas requis pour se connecter aux ports supérieurs à 1024, si

  • le domaine qui servait le fichier SWF était identique au domaine de la connexion de socket et
  • si le domaine qui servait le fichier SWF hébergeait un fichier crossdomain.xml.

Cette configuration antérieure présentait un risque pour les clients, car un nombre croissant de services critiques sont servis depuis des ports supérieurs à 1024. Cette modification permet également de réduire la possibilité d’une attaque par reliaison DNS utilisant des sockets Flash Player pour atteindre l’hôte de la victime. Pour remédier à ce problème, Flash Player requiert désormais un fichier de stratégie de socket pour toutes les connexions de socket, indépendamment du port de destination et de la présence d’un fichier crossdomain.xml. Il existe désormais un emplacement principal fixe pour les fichiers de stratégie de socket sur le port 843. Sur ce port, le fichier de stratégie peut définir des métastratégies qui définissent si d’autres fichiers de stratégie sont autorisés sur l’hôte. Par défaut, tous les fichiers de stratégie de socket sont reconnus.

Si vos fichiers SWF pouvaient auparavant se connecter à l’hôte d’origine sur les ports supérieurs à 1024 car il existait un fichier crossdomain.xml, vous devez désormais disposer d’un fichier de stratégie de socket. Le fichier de stratégie de socket peut être transmis à partir du port de stratégie de socket principal (843) ou du même port que la connexion de socket.

Diagnostic

Les informations ci-après vous permettent de déterminer si ce changement affecte votre site. Flash Player 9.0.115.0 propose désormais une nouvelle fonction de journalisation des fichiers de stratégie. Le journal des fichiers de stratégie affiche les messages pour chaque événement relatif aux fichiers de stratégie : tentatives de récupération de ces fichiers, réussites et échecs de leur traitement et résultats des demandes qui dépendent d’eux. Vous pouvez trouver des informations complètes sur les messages de journal des fichiers de stratégie dans l’annexe B de la page Changements des fichiers de stratégie Flash Player 9 et 10.

Pour utiliser le journal des fichiers de stratégie :

  1. Installez la version de débogage de Flash Player 9.0.115.0 ou version ultérieure. Vous pouvez utiliser n’importe quel type de Flash Player : ActiveX, module externe ou autonome. Vous pouvez obtenir la version de débogage de Flash Player à partir des téléchargements du centre d’assistance de Flash Player.
  2. Déterminez l’emplacement du fichier de configuration mm.cfg. Il s’agit d’un fichier de configuration de débogage général que les versions de débogage de Flash Player lisent au démarrage. Le fichier mm.cfg se trouve dans le répertoire d’origine. Par exemple :

    • Windows : C:\Documents and Settings\username
    • Windows Vista : C:\Users\username
    • Mac OS et Linux : /home/username
  3. Créez un fichier mm.cfg s’il n’existe pas, puis ajoutez une des lignes suivantes ou les deux :

    • PolicyFileLog = 1 # Active la journalisation des fichiers de stratégie
    • PolicyFileLogAppend = 1 # Facultatif ; ne pas effacer le journal au démarrage
    • Si PolicyFileLogAppend n’est pas activé, chaque nouveau fichier SWF de niveau racine effacera le fichier journal. Si policyfilelogappendpolicyfilelogappend<> est activé, le contenu précédent du fichier journal est toujours conservé, et la taille du fichier journal augmente.

    Si de nombreux fichiers SWF de niveau racine sont chargés pendant le test, vous voudrez probablement activer PolicyFileLogAppend. Toutefois, si vous activez PolicyFileLogAppend, vous devrez probablement renommer manuellement ou supprimer le fichier journal de temps en temps ou il deviendra très volumineux et il sera difficile de déterminer où se terminent les données précédentes et où commencent les nouvelles données.

  4. Recherchez l’emplacement d’enregistrement du fichier policyfiles.txt, le journal des fichiers de stratégie. Il n’existe peut-être pas encore ; Flash Player le créera la prochaine fois qu’un fichier SWF est exécuté. Vous trouverez le fichier policyfiles.txt aux emplacements suivants :
    • Windows : C:\Documents and Settings\username\Application Data\Macromedia\Flash Player\Logs
    • Windows Vista : C:\Users\username[ AppData]\Roaming\Macromedia\Flash Player\Logs
    • Mac OS : /Users/username/Library/Preferences/Macromedia/Flash Player/Logs (en général, un programme n’enregistre pas les fichiers journaux dans le répertoire des préférences, mais c’est le cas ici)
    • Linux : /home/username/.macromedia/Flash_Player/Logs
  5. Pour vérifier votre configuration, exécutez tout fichier SWF dans Flash Player, puis fermez Flash Player (ou le navigateur).

  6. Vous pouvez constater la présence du fichier policyfiles.txt dans le répertoire des journaux. Vérifiez qu’il présente une heure de modification récente. Ouvrez-le et vérifiez qu’il contient au moins un message (« Fichier SWF de niveau racine chargé »). Si tel est le cas, la journalisation des fichiers de stratégie fonctionne.

  7. Vérifiez le contenu SWF que vous devez tester. Exécutez le contenu selon tous les scénarios qui lui feront rencontrer des fichiers de stratégie. Fermez Flash Player lorsque vous avez terminé.
  8. Lisez le fichier policyfiles.txt pour obtenir des informations sur ce qui s’est produit avec les fichiers de stratégie pendant votre test. Si vous voyez des messages qui ne sont pas clairs, voir Changements des fichiers de stratégie Flash Player 9 et 10.

  9. Si vous trouvez des informations utiles dans le fichier policyfiles.txt que vous devez conserver à des fins de référence ultérieure, attribuez un nom au fichier journal autre que policyfiles.txt ou déplacez-le vers un autre répertoire, afin que Flash Player ne remplace pas le journal lors de la prochaine exécution.

Solution : créez un fichier de stratégie de socket qui permet la connexion à l’hôte

Pour résoudre ce problème, vous devez créer un fichier de stratégie de socket permettant la connexion à l’hôte. Ce fichier de stratégie peut être transmis de l’emplacement de stratégie principal de socket sur le port 843 ou à partir du port de destination de la connexion de socket. Le fichier de stratégie de socket doit inclure tous les domaines autorisés à se connecter au socket, y compris lui-même. Si le fichier de stratégie de socket est hébergé à l’emplacement du fichier de stratégie principal, incluez les métastratégies où les fichiers de stratégie de socket peuvent être placés.

Les modifications relatives aux fichiers de stratégie de socket sont décrites en détail dans Changements des fichiers de stratégie Flash Player 9 et 10. (Les messages de journal sont décrits en détail dans l’annexe B.)

Référence supplémentaire

Pour obtenir des informations sur la sécurité de Flash Player, consultez la page sur la sécurité de Flash Player.

Les changements relatifs aux fichiers de stratégie inter-domaines et de socket sont décrits en détail dans Changements des fichiers de stratégie Flash Player 9 et 10.

Ce produit est distribué sous licence Creative Commons Attribution - Pas d’utilisation commerciale - Partage à l’identique 3.0 non transposé  Les publications Twitter™ et Facebook ne sont pas couvertes par les dispositions Creative Commons.

Mentions légales   |   Politique de confidentialité en ligne