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

JavaScript Discussion :

Argument window.postMessage(Object o, String targetOrigin, Transferable t)


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2014
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2014
    Messages : 33
    Points : 26
    Points
    26
    Par défaut Argument window.postMessage(Object o, String targetOrigin, Transferable t)
    Bonsoir,

    J'ai deux questions :

    - https://developer.mozilla.org/fr/doc...ow.postMessage
    Ci dessus se trouve la documentation de la méthode postMessage de l'objet window. Peut on m'expliquer exactement le fonctionnement du deuxième argument targetOrigin?

    - Ma deuxième question fait suite à la première :
    Quel est exactement le fonctionnement de la méthode addEventListener (Je sais qu'elle ajoute un écouteur d'événement mais est ce si il y en a plusieurs pour un même événement ils s'ajoutent à la suite ou le dernier écouteur écrase l'ancien).


    Cordialement.

  2. #2
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    targetOrigin a deux usages. Le premier c'est de différencier les pages quand plus de deux pages de ton application sont susceptibles d'utiliser postMessage, et quand tu n'as pas la certitude qu'une fenêtre donnée est forcément toujours liée à la même page.

    Le second c'est de renforcer la sécurité. Je traduis la page du MDN :
    Ce mécanisme permet de contrôler où les messages sont envoyés ; par exemple, si postMessage était utilisé pour transmettre un mot de passe, il serait absolument vital que cet argument soit une URI dont l'origine est la même que le récepteur prévu du message contenant le mot de passe, afin de prévenir l'interception du mot de passe par une tierce-partie malicieuse.
    J'admets volontiers que ça peut être très difficile, pour un attaquant, de réussir à créer une situation dans laquelle il peut récupérer les informations que tes pages envoient via postMessage. Mais très difficile ne veut pas dire impossible, et utiliser targetOrigin permet de réduire le risque.

    Origine est un terme précis qui représente le schéma (http ou https), plus le domaine, plus le numéro de port quand il est présent. Il y a des cas où ce n'est pas une bonne idée d'écrire le paramètre origin en dur dans le code, car les valeurs qu'il contient sont amenées à changer. Le mieux est de le construire à la volée à partir des différentes propriétés de location.

    Note que tu as aussi un certain contrôle sur le domaine de tes pages.

    À propos de addEventListener : quand un évènement est reçu, les fonctions qui ont été enregistrées comme gestionnaire de cet évènement sont appelées, et l'évènement leur est passé en paramètre. Je dis bien les fonctions, il peut y en avoir autant que tu veux. Ils ne s'écrasent pas les uns les autres. Sauf dans le cas particulier où tu enregistres deux fois la même fonction (il faut qu'elle soit nommée) au même évènement sur le même élément : le second enregistrement sera ignoré.

    Par contre l'ordre d'appel n'est pas garanti, il dépend de l'implémentation. En particulier, un navigateur (devine lequel ) ne respecte pas l'ordre dans lequel on a attaché les gestionnaires.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2014
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2014
    Messages : 33
    Points : 26
    Points
    26
    Par défaut
    Merci pour votre réponse et pour l’éclaircissement.

    Donc 'targetOrigin' spécifie l'origine de celui qui reçoit le message : est ce bien cela?

    PS : Je crois avoir deviné de quel navigateur il s'agit LOL.

  4. #4
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    Citation Envoyé par Ali Kent Voir le message
    Donc 'targetOrigin' spécifie l'origine de celui qui reçoit le message : est ce bien cela?
    Oui c'est bien ça.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2014
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2014
    Messages : 33
    Points : 26
    Points
    26
    Par défaut
    Ok merci pour la réponse.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 01/06/2012, 15h40
  2. Cast Object[] en String[][]
    Par Invité dans le forum Langage
    Réponses: 5
    Dernier message: 11/10/2007, 15h12
  3. conversion Object en String
    Par cerco1 dans le forum AWT/Swing
    Réponses: 9
    Dernier message: 16/08/2007, 16h18
  4. Réponses: 9
    Dernier message: 31/05/2006, 17h11
  5. [Débutant] Caster un Object en String[][]
    Par ArseNic dans le forum Langage
    Réponses: 9
    Dernier message: 13/01/2006, 18h41

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