Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: hash'owanie/szyfrowanie adresu w przeglądarce
Forum PHP.pl > Forum > PHP
czezz
Co powinienem zrobić aby pole adresowe w przeglądarce było nieczytelne dla użytkowników.

Chciałbym aby taki ciąg znaków, który pojawia się podczas korzystania z prostego formularza:
Kod
http://wawpc0336/auth/main.php?nrt=2791&cell=606765550

był jakoś zamazany. Zmienne nrt i cell.
Czy można tozrobić z poziomu php czy też należy walczyć z serwerem HTTP (Apache)?
Kinool
mozesz uzyc base64_encode" title="Zobacz w manualu PHP" target="_manual potem na wszelki wypadek uzyc rawurlencode" title="Zobacz w manualu PHP" target="_manual aby url byl zgodny ze specyfikacja przesylasz to a w php zeby odkodowac na stringa w odwrotnej kolejnsci najpierw rawurldecode" title="Zobacz w manualu PHP" target="_manual i potem base64_decode" title="Zobacz w manualu PHP" target="_manual smile.gif i bediesz mial ladne strinki a w polu adresu beda widoczne krzaczki smile.gif

o cos takiego ci chodzilo?questionmark.gif
dr_bonzo
1. user wypelnia formularz (method=get)
2. wiec otwiera teraz strone: http://wawpc0336/auth/main.php?nrt=2791&cell=606765550

Czyli kodowanie musisz zrobic jeszcze po stronie usera w JS, a co jesli on ma wylaczona obslujge JS?
czezz
jeśli w pliku logowanie.php (mechanizm do logowania) do wiersza kierującego do następnego pliku:

  1. <?php
  2.  
  3. header(&#092;"Location: /auth/main.php?nrt=$nrt&cell=$mobile\")
  4.  
  5. ?>


dodam

  1. <?php
  2.  
  3. base64_encode(header(&#092;"Location: /auth/main.php?nrt=$nrt&cell=$mobile\"));
  4.  
  5. ?>


to w adresie nic sie nie zmienia i dalej widoczne jest:

http://wawpc0336/auth/main.php?nrt=2791&cell=606765550
ARJ
1. ma być base64_encode lub base64_decode
2. kodujesz tylko zmienne a nie całego headera ( przynajmniej tak mi się wydaje )
czezz
  1. <?php
  2.  
  3. header(&#092;"Location: /auth/main.php?nrt=base64_encode($nrt)&cell=$mobile\")
  4.  
  5. ?>

i w adresie się wyświetla:
http://wawpc0336/auth/main.php?nrt=base64_...&cell=606765550
dr_bonzo
RTFM!!!!!!!!:
  1. <?php
  2. &#092;"Location: /auth/main.php?nrt=\" . base64_encode($nrt) . \"&cell=$mobile\"
  3. ?>
czezz
No i zamiast wartości zmiennej wyświetla mi się potem coś takiego "Mjc5MQ". Fajnie, że coś takiego widać w polu adresowym przeglądarki, ale na ekranie chce mieć rzeczywistą wartość tej zmiennej.

robie tak:
  1. <?php
  2.  
  3. &#092;"Location: /auth/main.php?nrt=\" . base64_encode($nrt) . \"&cell=$mobile\"
  4.  
  5. ?>


a potem w pliku main.php:

  1. <?php
  2.  
  3. $x = $_GET[&#092;"nrt\"];
  4.  
  5. ?>


i też dostaje taką wartość
crash
Moja propozycja:
  1. <?php
  2. $dane = array('nrt' => $nrt, 'cell' => $mobile);
  3. $dane = urlencode(base64_encode(serialize($dane)));
  4.  
  5. header('Location: /auth/main.php?d='.$dane);
  6. ?>

Odczytanie na main.php:
  1. <?php
  2. $dane = unserialize(base64_decode(urldecode($_GET['d'])));
  3. $nrt = $dane['nrt'];
  4. $mobile = $dane['cell'];
  5. ?>
czezz
dzięki już mi działa smile.gif. Dziękuję za pomoc.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.