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 :

Accéder aux éléments du Dom d'une page inclue avec une balise object


Sujet :

JavaScript

  1. #1
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 115
    Points : 70
    Points
    70
    Par défaut Accéder aux éléments du Dom d'une page inclue avec une balise object
    Bonjour à tous, voila deux heures que je barbote dans mon jus, alors je viens ici demander vos lumières .

    J'inclue dans ma page qui est pour l'instant vide, une page externe via la balise object:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <object id="include" data="http://www.mapage-externe.com" type="text/html">
    Le problème se pose rapidement, impossible de trouver les éléments de l'objet ainsi inclue en parcourant le dom.

    Je bloque complètement :S

    Je m'y prend comme un manche ou alors est-il impossible de modifier le dom avec une balise Object?

    Trés cordialement.

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par Aloneghost Voir le message
    Je m'y prend comme un manche ou alors est-il impossible de modifier le dom avec une balise Object?
    Il est impossible d'accéder au DOM d'une page externe (Same Origin Policy)

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1

  4. #4
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 115
    Points : 70
    Points
    70
    Par défaut
    Merci pour vos réponses

    J'ai bien regardé ton lien spacefrog, c'est assez interressant.

    En effet, j'arrive à faire ce que je veux sur une page hebergé au même endroit, mais message d'erreur d'accés ou d'interdiction lorsque je cherche à lire ou modifier le dom d'une page exterieure à mon site.

    Ce que je cherche à faire : Faire entrer une url à l'utilisateur, puis lui donner quelques boutons pour "jouer" avec la mise en page via quelques modifications basiques des CSS.

    Visiblement on ne peut pas modifier le dom, restrictions de sécurités, peut être alors qu'il est possible de récupérer le code source de la page en question, de l'enregistré sur un fichier en local, puis de faire les modifications sur ce fichier pour ne pas être bloqué par les restrictions de sécurité.

    Enfin c'est quand même bien pénible, surtout que je vais devoir faire un remplacement dynamique de tous les chemins relatifs pour donner de l'absolue sinon ca va afficher une page sans image...

    Si vous avez une autre solution :p


    Merci encore

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    pas en javascript ...
    reste coté serveur ...

  6. #6
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 115
    Points : 70
    Points
    70
    Par défaut
    Donc je récapitule :
    -FOpen ne marche pas, accés limité au serveur
    -File get content pareillement
    -Pas moyen d'accéder au DOM via Javascript

    Possibilité de manipuler le DOM d'une page avec php via un petit moteur ajax?

    Les restrictions de sécurités laissent php modifier le dom de serveur à serveur?

    Ou alors j'ai pas compris.

  7. #7
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 115
    Points : 70
    Points
    70
    Par défaut
    Aprés m'être renseigné pour les modifications du dom coté serveur, j'ai pensé à quelque chose de bien plus simple, si tenté que cela puisse se faire.


    On part sur le principe qu'il est possible de récupérer le schéma du DOM de la page externe via javascript.

    Il est également possible de modifier le dom de ma page courante.

    Alors j'ai essayé de "copier / coller" le DOM de la page importé via la balise object, dans le dom de ma page courante mais rien ne se produit.

    Un peu de lumière ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">	
     
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>Page mère</title>
    <script type="text/javascript">
    function transfert(){
    var HTMLImport=(document.all)?document.getElementsByTagName('object')[0]:document.getElementsByTagName('object')[0].contentDocument;
    document.getElementsByTagName("html") = HTMLImport.getElementsByTagName("html")[0];
    }
    </script>
    </head>
    <body onload='transfert()'>
    <div>
    <object name='import' id="import"  data="http://www.coiffureprivee.com" type="text/html" width="300" height="200">
    </object>
    </div>
     
    </body>
    </html>

  8. #8
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    On part sur le principe qu'il est possible de récupérer le schéma du DOM de la page externe via javascript.
    Et si je pars du principe que c'est possible de vectorialiser des images avec JavaScript, tu crois que je pourrai utiliser JavaScript comme Illustrator ?

  9. #9
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 115
    Points : 70
    Points
    70
    Par défaut
    Je ne vois vraiment pas l'intérêt d'une telle réponse.

    On peut construire une page web à partir d'un fichier XML, je ne vois pas ou est l'exploit de le faire avec l'image du dom d'une autre page...

    Je pensais faire un truc du genre : Récupérer la structure de la page importé au format JSON, et reconstruire la page sur la page client en remodelant de dom.
    Seulement je ne suis pas un crack, loin de la... Alors je demandais avant de me lancer dans mes bidouillages...

    Sachant que cette manipulation ne se ferait qu'au chargement initial de la page, une bonne fois pour toute, je ne comprend franchement pas la remarque...

  10. #10
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    L'intérêt de la réponse est de mettre le doigt sur le fait que ton postulat de départ est faux !

    Et j'ajouterai encore heureux. D'une part, parce que récupérer et modifier la source d'une page qui ne t'appartient pas, c'est une forme de piratage, mais surtout parce que si c'était possible, cela pourrait permettre, par exemple, de se faire passer pour un site marchand ou une banque et détourner les liens à son profit, voler des identifiants (de connexion, bancaires ou autres) et que ce serait donc une faille de sécurité assez énorme.

  11. #11
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 115
    Points : 70
    Points
    70
    Par défaut
    En ce qui me concerne, je désire récupérer la STRUCTURE d'une page externe.

    Mon but n'est aucunement de tenter un piratage quelconque, j'imagine bien que les choses sont bien sécurisé à ce niveau là et tant mieux pour nous tous!

    En gros, en ce qui me concerne, reproduire graphiquement l'environnement d'un site , bien sur que ce pourait-être un moyen de leurrer un utilisateur, serait un petit outil ludique permettant de modifier à la volée la feuille de style d'un site externe :

    -Raymond entre l'url d'un site, puis modifie le style et voit ce que ca donne grace à quelques outils.
    Interet : Faire des tests sans altérer les vrais sources de son site.

    Je m'étais peut être mal exprimé, ou alors mes intentions ne sont surement pas claire, je ne sais pas mais je ne désire nuire à personne...

    Maintenant si vous me dites que je ne peut pas récupérer l'arborescence du DOM d'une page externe à mon serveur, Amen... mais dommage

  12. #12
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    propose a Raymond d'installer l'addon webdevtoolbar sous firefox

  13. #13
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par Aloneghost Voir le message
    Mon but n'est aucunement de tenter un piratage quelconque
    Il n'est pas question de mettre en doute tes intentions, je voulais juste mettre le doigt sur ce que peut impliquer ce genre de demande, ce qui permet de mieux comprendre pourquoi ce n'est pas possible

  14. #14
    Futur Membre du Club
    Homme Profil pro
    Etudes Recherches et Prototypes
    Inscrit en
    Décembre 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Etudes Recherches et Prototypes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2010
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    Ce n'est pas possible avec Firefox, IE, Opéra...
    Mais avec un browser permissif, sûrement : j'imagine une application MFC qui instancie deux objet IExplorer, elle fait ce qu'elle veut des deux DOM...
    Coté serveur, on fait ce qu'on veut, il est possible de fusionner deux sites (sources) pour en faire un troisième (cible).

  15. #15
    Membre expérimenté Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Points : 1 519
    Points
    1 519
    Par défaut
    en effet la protection est surtout au niveau des navigateurs qui préfèrent refuser ce genre de manipulation ! mais rien ne t'empecherai de créer une application téléchargeable par tes visiteurs ou sur ton serveur qui elle récupérerait le DOM d'une page à l'aide une simple requête GET.

    il existe néanmoins certains sites web/serveur qui vérifient la source de la requêtes (par exemple ils attendent un header valide provenant d'un navigateur connu.) mais encore une fois, rien n'empêche de simuler ce navigateur dans tes requêtes.

    en conclusion, il est toujours possible de faire ce qu'on veut, mais ces règles des navigateurs nous évitent sans doute bon nombres de hackers à la petite semaine.


    pour injecter du JS(et donc manipuler le DOM) dans un site de manière "légale" au yeux du navigateur c'est de passer par les favoris, un des moyen les plus simple qu'utilise(ait?) facebook par exemple !

    en gros l'idée est qu'en tapant "javascript:instructions..." dans la barre d'adresse, tu peux rajouter du JS sur une page. Il suffit donc de faire un attach de ton script qui ira manipuler son DOM et son CSS.

    En gros sur ton site à toi, tu laisses l'user choisir les options de styles qu'il voudra avoir, selon ses choix tu personnalise un fichier js. Tu lui fournis un bouton qui rajoute automatiquement un favori qui contient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javascript:var h=document.getElementsByTagName('head')[0],s=document.createElement('script');s.src='url_de_mon_script_pirate.js';h.insertBefore(s,h);
    une fois que ton visiteurs aura choisi sa personnalisation sur ton site et généré le fichier JS ainsi que rajouté son favori, il n'aura plus qu'a se rendre sur le site victime en question en mode "normal". en ensuite cliquer sur son favori de personnalisation pour charger la personnalisation.

    c'est tordu comme méthode ... facebook l'utilise (ait?) pour créer un favori "j'aime/partager ce site" ou un truc du genre ! ;-)

    exemple de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    javascript:alert(document.getElementsByTagName('title')[0].innerHTML);
    par contre je ne trouve plus comment créer un bouton "addtofavorite" ^^

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/11/2013, 14h24
  2. lecture et integration d'une page xml dans une page html avec JS
    Par bigbrownies dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 29/12/2012, 09h57
  3. Réponses: 0
    Dernier message: 04/08/2010, 14h02
  4. Réponses: 3
    Dernier message: 06/01/2006, 08h57
  5. [XHTML11] Comment insérer une page externe dans une page ?
    Par Invité dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 17/03/2005, 19h43

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