IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flex Discussion :

Security error avec des ports différents


Sujet :

Flex

  1. #1
    Membre habitué
    Inscrit en
    Septembre 2007
    Messages
    169
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 169
    Points : 149
    Points
    149
    Par défaut Security error avec des ports différents
    Bonjour,

    Je rencontre actuellement un soucis de sécurité avec le crossdomain.xml sur un serveur pour lequel je souhaite accéder aux données sur un certain port (disons le 1042), mais que le fichier crossdomain.xml se trouve sur un apache sur le port 80.

    J'accède à mon service distant via un HttpService.

    J'ai donc mis mon fichier crossdomain à la racine de mon server (http://monserver:80/crossdomain.xml) qui contient ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?xml version="1.0" encoding="UTF-8"?>
    <!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" />
    <site-control permitted-cross-domain-policies="master-only"/>
    <allow-http-request-headers-from domain="*" headers="*"/>
    </cross-domain-policy>
    Si je lance tel quel mon application, il va chercher le crossdomain.xml sur http://monserver:1042/, forcément il le trouve pas.

    J'ai donc ajouté ce code là au chargement de mon application :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Security.allowDomain( "*" );
    Security.loadPolicyFile( "http://monserver:80/crossdomain.xml" );
    Il semble bien charger le fichier car j'ai même un warning disant que le secure ne sert à rien ici.

    Mais dès que je fais appel à mon service sur le port 1042, il tente à nouveau de récupérer le crossdomain.xml sur le 1042, il échoue et j'obtiens à nouveau l'erreur de sécurité... Il n'a pas l'air de prendre en compte le fichier chargé précédemment.

    J'ai essayé le loadPolicyFile avec "xmlsocket://monserver:80", sans plus de succès.

    Y aurait-il une autre manipulation à effectuer pour que cela fonctionne ? Je ne vois vraiment plus.

    Merci d'avance pour votre aide.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Points : 894
    Points
    894
    Par défaut
    La réponse est certainement dans cet article :

    http://www.adobe.com/devnet/flashpla..._security.html

  3. #3
    Membre habitué
    Inscrit en
    Septembre 2007
    Messages
    169
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 169
    Points : 149
    Points
    149
    Par défaut
    Merci jylaxx pour ce lien, j'avais déjà lu rapidement mais je l'ai relu plus en profondeur.

    Je suis notamment tombé sur ce paragraphe :
    Scope of meta-policies

    The following kinds of servers can declare meta-policies:

    * HTTP and HTTPS servers. Each server makes its own meta-policy declaration, which does not affect other servers. For example, the meta-policy of an HTTP server at port 80 affects only that server, and not an HTTP server at port 8080 on the same host. Likewise, the meta-policy of an HTTP server does not affect an HTTPS server on the same host, or vice versa.
    * FTP servers. Again, each server makes its own meta-policy declaration.
    * Entire hosts can declare a socket meta-policy, which governs low-level socket connections to that host on all ports. Low-level socket connections are those initiated using the ActionScript Socket and XMLSocket classes. Higher-level connections to HTTP and FTP servers, using any ActionScript APIs other than Socket and XMLSocket, should not be impacted by socket meta-policies, only by the meta-policy of the particular server involved. We sometimes refer to HTTP, HTTPS, and FTP meta-policies as URL meta-policies to distinguish them from socket meta-policies. For more about socket meta-policies, see the section on socket policy files.
    http://www.adobe.com/devnet/flashplayer/articles/fplayer9_security_03.html

    Est ce qu'il y a une solution quelconque à ce problème ? Car là j'avoue que je sèche, j'ai du louper quelque chose.

    Merci encore.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Points : 894
    Points
    894
    Par défaut
    Est-ce que tu as mis en place le logging (page 5) pour comprendre exactement ce qui se passe ?

    Tu ne peux pas définir de crossdomain.xml pour chacun des serveurs http ?

  5. #5
    Membre habitué
    Inscrit en
    Septembre 2007
    Messages
    169
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 169
    Points : 149
    Points
    149
    Par défaut
    Oui, voici le résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    OK: Chargement du fichier SWF au niveau racine : http://monflash:8080/Main.swf
    Avertissement :Attribut 'secure' non pris en compte dans le fichier de régulation de http://monserver/crossdomain.xml. Cet attribut n'est autorisé que dans les fichiers de régulation HTTPS et socket. Pour plus d'informations, consultez http://www.adobe.com/go/strict_policy_files_fr.
    OK: Fichier de régulation accepté : http://monserver/crossdomain.xml
    OK: Recherche de <allow-access-from> dans les fichiers de régulation pour autoriser le chargement des données depuis la ressource à http://monserver:1042/monappli par le demandeur de http://monflash:8080/Main.swf
    Erreur :[strict] Le fichier de régulation à http://monserver:1042/crossdomain.xml a été ignoré en raison d'une syntaxe incorrecte. Pour résoudre ce problème, consultez la page http://www.adobe.com/go/strict_policy_files_fr
    Erreur :La demande de la ressource à http://monserver:1042/monappli par le demandeur à http://monflash:8080/Main.swf est refusée par manque d'autorisations du fichier de régulation.
    Et non je ne peux pas mettre de fichier à la racine de mon autre serveur d'application, sinon ca résoudrait simplement mon problème je pense.

    S'il n'y a pas de solutions, je vais peut être regardé du côté des fonctionnalités de proxy d'apache pour faire passer mes requêtes vers mon appli par le serveur apache, et donc le port 80.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Points : 894
    Points
    894
    Par défaut
    Erreur :[strict] Le fichier de régulation à http://monserver:1042/crossdomain.xml a été ignoré en raison d'une syntaxe incorrecte.
    Ce message indique donc qu'il n'a pas trouvé le fichier et non pas que sa syntaxe est incorrecte ?

    Pour quelle raison ne peux-tu pas placer de crossdomain sur le serveur du port 1042 ?

  7. #7
    Membre habitué
    Inscrit en
    Septembre 2007
    Messages
    169
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 169
    Points : 149
    Points
    149
    Par défaut
    En fait sur le serveur du port 1042, il y a une redirection permanente de tout le contenu qui arrive dessus vers une autre page html, et c'est donc cette page qu'il a récupéré, d'où le message de la syntaxe incorrecte.

    Cette application est une application propriétaire assez complexe et il n'y a pas un répertoire "root" où l'on peut déposer simplement un fichier xml pour qu'il soit accessible en http.

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Points : 894
    Points
    894
    Par défaut
    S'il n'y a pas de solutions, je vais peut être regardé du côté des fonctionnalités de proxy d'apache pour faire passer mes requêtes vers mon appli par le serveur apache, et donc le port 80.
    Effectivement il semble que les contraintes de sécurité empiètent de plus en plus sur notre liberté et dans tous les domaines !!!

    Ce genre de situation est assez frustrante...
    D'un autre côté il est assez facile de développer son propre serveur pour retrouver un peu de liberté

  9. #9
    Membre habitué
    Inscrit en
    Septembre 2007
    Messages
    169
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 169
    Points : 149
    Points
    149
    Par défaut
    Ok merci de ton aide.

    Par contre je n'ai pas compris ce que tu entends par "développer son propre serveur" ?

    Si quelqu'un a une solution, je reste preneur

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Points : 894
    Points
    894
    Par défaut
    Je voulais dire qu'au lieu de communiquer à partir du client Flex vers tous les fournisseurs de services avec tout le paramétrage et les incertitudes à gérer, il était peut-être plus simple de communiquer avec un seul serveur, parfaitement maitrisé et "under-control" qui se charge de rediriger les requêtes.

  11. #11
    Membre habitué
    Inscrit en
    Septembre 2007
    Messages
    169
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 169
    Points : 149
    Points
    149
    Par défaut
    Effectivement ca serait le plus simple, après reste à vérifier que ce goulot d'étranglement nouvellement créé ne causerait aucun soucis par la suite.

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/05/2006, 21h08
  2. Ouverture d'un formulaire avec des requêtes différentes
    Par Jérémy VAUTIER dans le forum Access
    Réponses: 3
    Dernier message: 02/03/2006, 07h31
  3. Projet Delphi avec des port COM1
    Par Miksou dans le forum Langage
    Réponses: 2
    Dernier message: 23/11/2005, 15h36
  4. [Débutant]Boucle imbriquée avec des bornes différentes
    Par Hayato dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 29/08/2005, 16h23
  5. Changer plusieur style avec des IDs différents?
    Par YanK dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/07/2005, 14h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo