Cacher ses liens de l'url

Soyez le premier à donner votre avis sur cette source.

Snippet vu 7 545 fois - Téléchargée 16 fois

Contenu du snippet

Suite à une discussion sur le forum je propose une solution à la question ' cacher ses liens de l'url ' !

Source / Exemple :


<html>
marche
<form method="post" action="?go=tttt">
<input type="submit"  value="voir">
</form>
<br />
<a href="?go=tati">ok</a><br />

<hr>
ce bouton marche pas le lien n'est pas connu
<form method="post" action="?go=rrrtttt">
<input type="submit"  value="voir">
</form>
<br />
ce lien ne marche pas :
<a href="?go=tatzyrzryi">ok</a><br />
</body>
</html>

<?php

$lien=array('tati','tato','toto','tttt');

//remplacer REQUEST par POST si on veut que du POST et pas de GET

if(isset($_REQUEST['go']) && !empty($_REQUEST['go']) && strlen($_REQUEST['go'])<5 ){

/*echo $choix=$_REQUEST['go'];
cette ligne ne sert que à une vérification*/  

    if(in_array($choix,$lien)){
    
    header('location:http://www.google.com');exit; 
    
    } 

    //ou un switch case ... pour eviter les suites de else if

    elseif(in_array($choix,$lien) && $lien=="tttt"){
    
    header('location:http://yahoo.fr');exit;
    
    // ou pour les cachotiers
    // avec .htaccess dans le repertoire secret ... 
    // et un index.php vide dans le repertoire secret anti-listage
    // header('location:../secret/mon_super_file_crypte.zip');
    
    }else{
    
    echo 'inconnue';
    
    }

}else{
exit;
}

?>

Conclusion :


à ameliorer

A voir également

Ajouter un commentaire

Commentaires

Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
12
Salut,

@emilia : Le principe en lui même est utile, c'est ce qui fait des réducteurs d'url tels que TinyURL. Après bien entendu cette source est loin de ce genre de service pourtant simple je te l'accorde.

Concernant la source elle même, ça reste assez "naïf" comme manière de faire mais passons. Juste une remarque sur le coté immonde de l'utilisation d'un switch/case ou d'une série de if, utiliser un tableau associatif aurait été un gros plus. Exemple pour la partie php :

<?php
$lst array('bleh'> 'http://example.com/',
'bip' => 'http://example.org/');
if (!empty($_GET['go']) && isset($lst[$_GET['go']]))
header('Location: ' . $lst[$_GET['go']]);
die();

?>

Les tableaux en php c'est bon, mangez en !
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
12
bonjour
@de emilia123
le but du script est de cacher le lien dans l'url.
echo avant un header('location..'); oui il faut que je dévalide cette ligne ...
c'était une ligne de vérification.
le zip est crypté et je cache pas le lien dans dans ce cas c'est pour limiter
le telechargement à ce seul fichier.
oui pour un switch mais dans l'exemple ça reste acceptable.
merci pour tes remarques.
a++
Messages postés
122
Date d'inscription
mercredi 19 décembre 2001
Statut
Membre
Dernière intervention
5 janvier 2009

bonjour,

Je vais me permettre de commenter le fonctionnement avant le code lui meme.
A quoi cela sert il de proteger le lien

si lorsque l'on clique sur ce systeme de protection, on est redirigé dessus :
header('location: MON_LIEN');

le lien ne reste pas secret plus d'1/2 seconde (si l'on prend l'exemple final "/secret/mon_super_file_crypte.zip") car il suffit de cliquer pour l'avoir.

Sinon pour le code:
- il y a un echo avant un header('location..');
sur un serveur bien configuré, tu auras un message d'erreur et la redirection ne marchera pas.

- au lien de faire des tests IF multiples et variés (plusieurs if/elseif qui s'enchainent ca peut vite devenir illisible), il serait peut etre plus lisible de faire un switch(..) case '...' : .... break;
le cas particulier "default" te permettrait de traiter le cas "inconnue"

Bonne continuation,

EM.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.