2010-09-01 6 views
0

Je suis en train d'envoyer un nom de sujet dans l'URL, commeou Chiffrer les chaînes Hiding envoyés dans l'url

<a href="hello?TopicN=blahblahblha"> 

puis sortie le nom du sujet comme le titre du sujet Forum. Mais le problème est que l'utilisateur peut juste changer le nom s'il veut ne pas faire de mal puisque je ne fais vraiment rien avec le nom mais je me demandais s'il y avait un moyen de crypter ou d'échanger les lettres donc ce n'est pas si évident est ?

J'ai également essayé le cryptage md5 mais, md5 est seulement 1 chemin de sorte que cela n'aide pas. On pourrait utiliser des sessions, pas sûr que je stocke les informations de connexion des utilisateurs dans les sessions,

des idées et des exemples seraient utiles,

Merci

+0

Quels sont les avantages que vous auriez de le faire? Je pense que c'est plus ennuyeux que ça en vaut la peine ... Après tout, les noms devraient être lus par les utilisateurs de toute façon, n'est-ce pas? –

+0

Il n'y a pas d'avantages je suppose mais je pensais que je demanderais une référence future juste au cas où je veux transmettre des valeurs cachées en utilisant l'URL qui doit être exécutée si quelque chose est vrai sur la page en cours. Vous avez raison cependant. – Gebsbo

+1

Impossible de transmettre des valeurs masquées dans l'URL, car l'URL est un élément que le client doit connaître pour que son navigateur affiche la page des références d'URL. Si vous voulez stocker ces données, utilisez une session. – Chris

Répondre

3

Vous pouvez utiliser base64_encode et base64_decode, il est moins évident.

base64_encode (blahblahblha) = YmxhaGJsYWhibGhh

base64_decode (YmxhaGJsYWhibGhh) = blahblahblha

Je remets en question l'objet ou le bénéfice de cette exigence bien.

4

MD5 est hachage, pas le chiffrement, de sorte que ne va pas aider . Envisagez de transmettre un identifiant à une ligne de votre base de données afin de pouvoir rechercher le titre.

<a href="hello.php?TopicN=1234"> 

Faire confiance au client est un gros non-non pour plusieurs raisons, et c'est l'un d'entre eux. Utiliser la session pour stocker cette information fonctionnerait, mais cela semble inapproprié étant donné que (je suppose) que TopicN pourrait (ou changerait) fréquemment.

Bonne chance!

Ian

1

Je vous conseille de faire l'inverse même.

rendre plus moteur de recherche et facile à utiliser, comme ceci: forum/fil/blabla

Si vous utilisez la recherche Apache Rewrite Engine

0

Essayez ceci:

fichier: .htaccess

RewriteEngine On 
RewriteRule url/(.*) url_parser.php?url=$1 [L,QSA] 

fichier avec les liens:

<a href="<?php echo base64_encode("hello?TopicN=blahblahblha"); ?>">Link</a> 

fichier: url_parser.php

<?php 
$encodedURL = filter_input(INPUT_GET, 'url', FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH); 

$unencodedURL = base64_decode($encodedURL); 
$urlParts = parse_url($unencodedURL); 

$newURL = $urlParts['path']; 

// See if there are any extra _GET parameters on this URL: 

// Add encoded _GET params: 
$newURL .= '?' . $urlParts['query']; 

// Add extra _GET parameters: 
$newURL .= '&' . $_SERVER['QUERY_STRING']; 

// Add any passed # 
$newURL .= '#' . $urlParts['fragment']; 

// Redirect to the new URL: 
header('Location: ' . $newURL); 

// If you want to hide the URL completely, do this: 
readfile($newURL);