Modifier le referer

Modifier le referer - PHP - Programmation

Marsh Posté le 25-05-2006 à 21:48:25    

Salut à tous
 
J'ai vu que ce sujet à été traité plusieurs fois, mais je n'ai pas réussi à trouver une réponse satisfaisante à mon problème (que voici) :
 
Je veux pouvoir rediriger (grâce à un bête header() avec Location) n'importe quoi depuis une page (l'url fournie à Location est passée par GET).
Mais je veux aussi modifier le referer qui est envoyé par HTTP...
 
Pour ce faire je devrai normalement utiliser la fonction header() avec le paramètre Referer comme suit :

Code :
  1. header('Referer: '.$referer);
  2. header('Location: '.$url);


Or, cette syntaxe ne fonctionne pas  :(  
Et même en inversant Referer et Location ça ne marche pas (j'ai créé une petite page, qui affiche le referer, et sur laquelle pointe ma redirection -> le referer est toujours celui de la page qui pointe sur la page de redirection.
 
Aperçu :

Code :
  1. <?php
  2. // Récupération des paramètres GET
  3. // *URL
  4. $url = NULL;
  5. if (isset($_GET['url']))
  6. {
  7.     $url = $_GET['url'];
  8. }
  9. // *Referer
  10. $referer = NULL;
  11. if (isset($_GET['referer']))
  12. {
  13.     $referer = $_GET['referer'];
  14. }
  15. // Envoi des HEADER (redirection)
  16. header('Referer: '.$referer);    // Changer le referer
  17. header('Location: '.$url);       // Page de destination
  18. ?>


Pour rediriger, j'appelle la page de redirection comme suit :

<a href="redir.php?url=...&referer=...">Redirection</a>


Même en remplaçant dans la page de redirection header('Referer: '.$referer); par header('Referer: http://unsite.com/index.php'); le résultat reste le même.
 
J'ai trouvé une classe PHP qui le permettait, mais il fallait utiliser PHP5 avec l'extension CURL, ce qui n'est pas installé chez les hébergeurs gratuits tels que lycos...  :(  
Pour info, cette classe s'appelle Simplecurl
 
Je sais que les navigateurs peuvent bidouiller eux-même les en-tetes, donc normalement le serveur devrait aussi pouvoir...
 
Quelqu'un aurait-il une solution avec PHP<5 et sans librairies PHP préinstallée ?


Message édité par Superjun le 26-05-2006 à 01:44:36

---------------
J'aime la vie, et je la croque à pleine dents, cette saloppe.
Reply

Marsh Posté le 25-05-2006 à 21:48:25   

Reply

Marsh Posté le 25-05-2006 à 21:54:09    

Pouet, on peut pas : Le header location va envoyer une requête HTTP signalant la redirection au client. Le client va alors rediriger avec son propre referer à lui

Reply

Marsh Posté le 25-05-2006 à 22:01:36    

Du coup, ça sert à quoi header('Referer: ...'); en PHP ?
Ou bien ce paramètre n'existe pas. Mais quelle est la liste des paramètres qui peuvent être envoyés par le serveur ?
 
 
Et alors comment ça se fait que la classe Simplecurl arrive à le faire ? (voire mon post principal)


Message édité par Superjun le 25-05-2006 à 22:09:18

---------------
J'aime la vie, et je la croque à pleine dents, cette saloppe.
Reply

Marsh Posté le 25-05-2006 à 22:07:51    

Rien... Enfin ça enverra ce header, mais le navigateur n'en fera rien. Pour Simplecurl, ça va aboutir au fait que c'est le serveur qui fera la connexion avec le referer et tout (mais pas le client, d'où bordel)

Reply

Marsh Posté le 25-05-2006 à 22:14:13    

Ok, merci pour tes réponses...
 
Et si j'utilise simplecurl (faut d'abord que je trouve un serveur PHP5 + CURL), tu dis que ça fera du bordel... mais ça fonctionnera quand même ?


---------------
J'aime la vie, et je la croque à pleine dents, cette saloppe.
Reply

Marsh Posté le 25-05-2006 à 22:15:00    

Ben y'aura pas vraiment de redirection... vu que c'est le script qui se connecte

Reply

Marsh Posté le 25-05-2006 à 22:25:56    

ça fera donc une sorte de proxy ?
 
En réalité, tout ce que j'ai besoin c'est de pouvoir me "connecter" à un fichier (page HTML / image / etc) en altérant les informations contenues dans le referer, sans intervention de l'utilisateur sur son navigateur et sans passer par un proxy conventionnel...


Message édité par Superjun le 25-05-2006 à 22:26:16

---------------
J'aime la vie, et je la croque à pleine dents, cette saloppe.
Reply

Marsh Posté le 25-05-2006 à 22:33:39    

Ouais, genre un proxy un petit peu. Tu va pouvoir alors te connecter à un serveur, et récupérer un fichier, en mettant ce que tu veux dans le referer

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed