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

Langage PHP Discussion :

Définir cookie tiers (sur un autre domaine)


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 126
    Points : 55
    Points
    55
    Par défaut Définir cookie tiers (sur un autre domaine)
    Bonjour,

    Je cherche comment définir un cookie sur un autre domaine.

    Par exemple, je suis en local, et j'ai écris un petit script PHP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    setcookie('aa_salut', 'salut, je suis un cookie défini par un autre site', time()+(3600*24), '/', 'www.google.fr');
    ?>
    Ce script est appelé depuis l'URL http://localhost/monscript.php.

    En allant voir dans les cookies de mon navigateur, je devrais donc avoir un cookie nommé aa_salut pour le domaine www.google.fr.

    Or ça ne fonctionne pas, je ne vois pas le cookie que je viens de créer (j'ai testé avec Firefox 3 et Chrome, tous les 2 configurés pour accepter les cookies tiers).

    Voici l'entête HTTP renvoyée par mon script :

    HTTP/1.1 200 OK
    Date: Sat, 22 Jan 2011 19:17:03 GMT
    Server: Apache/2.2.13 (Win32) mod_ssl/2.2.13 OpenSSL/0.9.8k PHP/5.2.10
    X-Powered-By: PHP/5.2.10
    Set-Cookie: aa_salut=salut%2C+je+suis+un+cookie+d%E9fini+par+un+autre+site; expires=Sun, 23-Jan-2011 19:17:03 GMT; path=/; domain=www.google.fr
    Content-Length: 131
    Keep-Alive: timeout=5, max=98
    Connection: Keep-Alive
    Content-Type: text/html
    Y'a pourtant aucun problème, le cookie est bien envoyé dans l'entête...

    Donc je vois pas pourquoi ça marche pas, quelqu'un sait ?

    Merci

  2. #2
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Salut,

    Tout simplement parce que http://localhost/ n'est pas... www.google.fr.

    L'agent utilisateur (le navigateur) le sait et, par mesure de sécurité ignore la requête.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 126
    Points : 55
    Points
    55
    Par défaut
    Mais dans ce cas ça veut dire que c'est impossible de définir des cookie tiers, puisqu'on ne pourrait définir un cookie que sur le domaine courant.

    J'ai essayé de définir le cookie sur un sous domaine de localhost : forum.localhost, ben ça marche pas non plus.

    Tu es sûr de ton explication, je comprends pas trop ?

  4. #4
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    c'est impossible de définir des cookie tiers
    Tu ne peux ni créer ni lire des cookies tiers car ils sont externes à ton domaine.

    J'ai essayé de définir le cookie sur un sous domaine de localhost : forum.localhost
    Essaie en utilisant ".localhost comme paramètre domain de la fonction setcookie().

    Pour rendre le cookie disponible sur tous les sous-domaines de example.com, vous devez mettre la valeur '.example.com'.
    Le point (.) n'est pas requis mais est nécessaire pour la compatibilité avec encore plus de navigateurs.
    Positionnez le à www.example.com et le cookie sera disponible uniquement sur le sous-domaine www.

  5. #5
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    Mais dans ce cas ça veut dire que c'est impossible de définir des cookie tiers, puisqu'on ne pourrait définir un cookie que sur le domaine courant.

    Tu es sûr de ton explication, je comprends pas trop ?
    Les explications sont bonnes.

    Fort heureusement qu'il ne soit pas possible de créer des cookies autres que son domaine, car si tel était le cas, ça serait non seulement un énorme manque de sécurité, mais aussi l'anarchie total.

    Imagine que tu crée un cookie "google.com", il fait comment Google si l'utilisateur (le navigateur en faite) navigue/surf en même temps sur Google justement (autre onglet ou fenêtre) ?
    Il ne peut pas avoir 2 cookies du même domaine, on est d'accord ?
    Alors qui prendrait "le pas" dans ce cas là alors ? Google ou le tient ?

    Bref, ce n'est pas pensable, il n'y pas à vouloir créer un cookie autre que son domaine.


    Puis le principe de base des cookies, c'est que le navigateur n'accepte non seulement que les cookie du même domaine que celui qu'il vient d'interroger, car à l'origine, une requête HTTP a été envoyé à un domaine bien déterminé, mais aussi, le navigateur ne renverra un cookie que si le domaine est le même que celle de la requête HTTP qui est envoyée.

    Donc en admettant même qu'on venait à créer un cookie d'un autre domaine que le sien (on peu le faire sur sa propre machine, suffit de connaitre SQLite, car FF l'utilise pour les cookies), le navigateur ne le renverrait jamais, donc le serveur ne le recevra jamais, autant dire que c'est l'impasse.

    En somme, il faut qu'à chaque fois les 2 domaines concordent : le serveur/domaine qui est interrogé, et le serveur/domaine qui envoie la réponse.

    J'ai essayé de définir le cookie sur un sous domaine de localhost : forum.localhost, ben ça marche pas non plus.
    Il est possible de créer des sous-domaine du domaine localhost, mais il faut un peu modifier Apache, le httpd.conf entre autre pour créer les virtualhost.
    Il faut (normalement) indiquer aussi à la machine ces différents sous domaines, sur Win XP par exemple c'est dans :
    C:\WINDOWS\system32\drivers\etc -> le fichier hosts

    M'enfin, on s'éloigne un peu du sujet.


    Quelle est le but recherché en voulant comme ça créer un cookie autre que ton domaine ?
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2015
    Messages : 8
    Points : 7
    Points
    7
    Par défaut HELP ME AU SECOURS
    J'ai besoin de votre aide, j'ai une page Web dans mon site qui contient des balise object. Je souhaite modifier les cookies pour tester plusieurs version hors lorsque je modifie le cookie avec JS les object ne sont pas impactés. Comment puis-je palier à ses problèmes.

    code JS :
    <code>
    this.cookie = name + "=" + encodeURI(value) + ";expires=" + date.toGMTString() + ";domain=" + domain + ";";
    </code>
    thanks for your help

Discussions similaires

  1. Définir un workspace sur un autre ordi
    Par julien.63 dans le forum Eclipse
    Réponses: 3
    Dernier message: 09/09/2009, 22h44
  2. Réponses: 1
    Dernier message: 24/07/2009, 02h59
  3. Faire pointer mon domaine sur un autre domaine
    Par ren0 dans le forum Serveurs (Apache, IIS,...)
    Réponses: 1
    Dernier message: 16/08/2008, 11h15
  4. Réponses: 7
    Dernier message: 19/03/2008, 16h07
  5. Appel d'une fonction dans une iframe sur un autre domaine
    Par morikann dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 16/06/2007, 18h46

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