Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Bezpieczne przekierowanie
JamalBIG
post
Post #1





Grupa: Zarejestrowani
Postów: 496
Pomógł: 1
Dołączył: 16.01.2008
Skąd: Świnoujście

Ostrzeżenie: (0%)
-----


Witam

W jaki sposób mogę w bezpieczny sposób przekierować użytkownika na określony w zmiennej GET adres podstrony np. użytkownik przegląda artykuł i aby dodać komentarz musi się zalogować więc skrypt po kliknięciu 'dodaj komentarz' rozpoznaje niezalogowanie i przekierowuje do formularza logowania - po poprawnym zalogowaniu chciał bym aby użytkownik wrócił na stronę artykułu aby móc wpisać komentarz - i tu pojawia się zagłostka - jak przesłać adres docelowy po zalogowaniu? W GET, SESSION, POST a może w zupełnie inny sposób?

Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
KsaR
post
Post #2





Grupa: Zarejestrowani
Postów: 520
Pomógł: 102
Dołączył: 15.07.2014
Skąd: NULL

Ostrzeżenie: (0%)
-----


Po kliknieciu 'dodaj komentarz' sprawdz czy zalogowany,
Jak nie to dodaj do sesji ten url i przekieruj na logowanie.
  1. session_start(); # jeśli nie masz...
  2. ob_start(); # buforowanie.. M.in nagłówków
  3.  
  4. if (!isset($_SESSION['logged']))
  5. {
  6. $_SESSION['redirect']=$_GET['adresPodstorny']; # lub inną zmienną.
  7. header('refresh:5;url=login.php');
  8. exit ('Przed dodaniem komentarza musisz się zalogować, za 5s zostaniesz przekierowany. Jeśli nie, kliknij <a href="login.php">tutaj</a>.');
  9. }

Przy logowaniu mozesz dodac sprawdzanie czy istnieje np.

  1. if (isset($_SESSION['redirect']))
  2. {
  3. header('Location:'.$_SESSION['redirect']);
  4. unset($_SESSION['redirect']);
  5. }

Ps. Pisane skrypty z pamięci, żebyś miał zarys.

Ten post edytował KsaR 28.12.2015, 19:56:50


--------------------
Go to the top of the page
+Quote Post
JamalBIG
post
Post #3





Grupa: Zarejestrowani
Postów: 496
Pomógł: 1
Dołączył: 16.01.2008
Skąd: Świnoujście

Ostrzeżenie: (0%)
-----


A jak można to dodatkowo zabezpieczyć aby za pomocą GET ktoś nie wysłał złego linku? Czy przepuszczenie zmiennej przez filtry przeciw najpopularniejszymi atakami wystarczy?
Go to the top of the page
+Quote Post
KsaR
post
Post #4





Grupa: Zarejestrowani
Postów: 520
Pomógł: 102
Dołączył: 15.07.2014
Skąd: NULL

Ostrzeżenie: (0%)
-----


Zakladając że chcesz przekierowac na ta sama strone gdzie kliknales "dodaj komentarz",
Mozesz uzyc jakiejs zmiennej serverowej np.

  1. $_SESSION['redirect']=$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];

i to zapisywac zamiast tamtego $_GET..
A jak na inna to zapisuj samo $_SERVER['SERVER_NAME'] wraz z tamtym z get, co by np. Poza strone nie przekierowal.

Ten post edytował KsaR 28.12.2015, 20:25:54


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 18:13