2010-07-14 7 views
0

Comment créer un fichier php "redirect.php" Cela prend 1 paramètre d'entrée "URL", doit vérifier l'URL La page n'est pas morte avant de rediecter?Vérifiez si la page Web est correcte avant de la rediriger?

Exemple

1 utilisateur clique sur le lien http://domain.com/Redirect.php?URL=http://example.com/page1.php

2 vérifie redirect.php si la page (http://example.com/page1.php) est ok!

3 si l'utilisateur ok redirection vers http://example.com/page1.php

4 sinon affichage correct message « pas en service »

+0

Pas une réponse à votre question, mais vous devriez également vérifier ce que le paramètre d'URL est avant de rediriger, ou bien vous aurez une redirection ouverte vulerability: http: //www.owasp .org/index.php/Open_redirect – Annie

Répondre

3

Vous pouvez utiliser CURL pour accéder à la page Web dans le code, et voir si vous obtenez un résultat valide.

Cependant, je ne vois aucun avantage à le faire. Soit il est en panne et ils reçoivent votre message «pas en service», ou il est en panne et ils reçoivent le message du navigateur qu'il est en panne ... Dans le processus, vous avez doublé le trafic de votre site vers le site cible inutilement.

+0

Il voudra peut-être faire autre chose que d'afficher "Not in service". Il peut vouloir l'enregistrer, ou produire une recherche si elle n'est pas trouvée ou n'importe quel nombre de choses. Mais s'il veut juste afficher cela, je suis d'accord, c'est inutile. – Malfist

+0

Salut oui Je veux enregistrer et suivre les pages si elle est vivante ou morte! Sinon, je ne saurais pas que mon application redirige vers un lien externe rompu! – 001

+0

Vous souhaitez également bloquer certaines URL swell S'il est sur la liste noire alors je ne redirige pas l'utilisateur du tout. (alors je montre un message que l'URL a été bloquée, etc.) – 001

0

Essayez ceci:

<?php 
if (fopen($_GET['url'], "r")) { 
    header('Location: ' . $url); 
} 
else { 
    // Say it is not OK 
} 
?> 
+0

C'est une mauvaise idée, cela nécessitera que toute la page soit téléchargée par le serveur web, plus il peut encore retourner des données pour signaler une erreur, et cela ne vous le dira pas . De plus, vous devez activer fopen_url dans php.ini ouvrant une vulnérabilité de sécurité significative – Malfist

+0

Humm Je ne le savais pas - si fopen télécharge vraiment la page, je suis d'accord qu'il ne devrait pas être utilisé. – Jan

Questions connexes