Cryptage d'url d'une page web

Signaler
Messages postés
2
Date d'inscription
samedi 8 février 2014
Statut
Membre
Dernière intervention
9 février 2014
-
Messages postés
1313
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
-
Bonjour,

Je créai actuellement un site web, et je me retrouve confronté à un problème:

Crypter une url.

Ce que je souhaite c'est que l'url change tout le temps de sorte qu'une personne ne puisse pas donner le lien a un amis par exemple.

Voila dans l'attente de vos réponses .

Cordialement

3 réponses

Messages postés
14686
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
6 août 2020
144
Bonsoir,

Dans quel but as-tu besoin de cela ?
Quelle information désires-tu cacher ainsi ?
Messages postés
2
Date d'inscription
samedi 8 février 2014
Statut
Membre
Dernière intervention
9 février 2014
1
Afin de rendre disponible une information a une personne sans qu'elle puisse copier le lien pour y revenir ultérieurement ou faire un copier coller du lien.

Cordialement
Messages postés
1313
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
6
Hello,

Pour cela tu eux tout simplement ajouter une variable temporaire à l'url à "crypter".

Par exemple imaginons que ta page par défaut qui fournit l'information soit :

http://www.monsite.com/information/

Pour "crypter" l'url tu peux donc ajouter une variable (ou plusieurs) afin de n'afficher l'information qu'une seule fois.
Dans cette optique tu peux par exemple, pour que cela soit fonctionnel, ajouter un hash + l'adresse IP de l'utilisateur, et ce uniquement lorsque l'utilisateur est connecté (utilisation de $_SESSION).

Ça pourrait donner quelque chose du genre :


<?php
if($_SESSION['user'] === "connected"){

// génération du hash temporaire
$_SESSION['hash'] = md5(uniqid(rand(), true));

// mise en session de l'adresse IP
$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];

$url = 'http://www.monsite.com/information/'.$_SESSION['hash'].'+'.$_SESSION['ip'];

echo '<a href="'.$url.'" target="_blank">Obtenir l'information</a>';

}
?>

Puis sur la page "information" :


<?php

// récupération de la variable "hash" pasée en GET
$hash = htmlspecialchars($_GET['hash'];

// récupération de la variable "ip" pasée en GET
$ip = htmlspecialchars($_GET['ip'];

// Tu testes si les conditions sont remplies pour afficher l'information, si elles sont remplies :
if($_SESSION['hash'] === $hash && $_SESSION['ip'] === $ip && $_SESSION['user'] === "connected){

include 'tapagequicontientlinfo.php';

}else{

// si les conditions ne sont pas remplies :

header('Location: http://www.monsite.com');

}

?>

Pour la réécriture d'url je te laisse te démerder : tu trouveras de quoi faire ça les doigts dans le nez ;)

A+
Messages postés
1313
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
6
A noter tout de même :

Si tu souhaites que l'information ne soit affichée qu'une seule et unique fois, il faut anéantir les variables de session qui permettent l'affichage de l'info :


<?php
if($_SESSION['hash'] === $hash && $_SESSION['ip'] === $ip && $_SESSION['user'] === "connected){

// variable à "killer" obligatoirement :
unset($_SESSION['hash']);

// variable à killer (optionnel)
unset($_SESSION['ip']);

// puis tu inclus le contenu de l'information
include 'tapagequicontientlinfo.php';

}
?>