Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> nadpisywanie zmiennej sesyjnej
a79rtur
post
Post #1





Grupa: Zarejestrowani
Postów: 331
Pomógł: 1
Dołączył: 23.05.2004
Skąd: Tarnów/Londyn

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


czesc. mam nastepujacą sytuacje: server ma wlaczone register globals i nie ma mozliwosci ich wylaczenia. jest zmienna w adresie powiedzmy o nazwie $zmienna i zmienna sesyjna o tej samej nazwie jest nadpisywana przez zmienną w adresie ? jak zrobic zeby tak sie nie działo poza oczywistym sposobem jak zmiana nazwy którejs z nich (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
crash
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

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


Nie da rady. Taka jest już "zaleta" register_globals.
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Ale przeciez nadal mozesz sie odwolac do $_SESSION[ 'zmianna' ] (ew. HTTP_...)?
Go to the top of the page
+Quote Post
hawk
post
Post #4





Grupa: Zarejestrowani
Postów: 521
Pomógł: 0
Dołączył: 3.11.2003
Skąd: 3city

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


Dokładnie. register_globals samo w sobie nie jest żadnym problemem. Problemem jest głupota ludzi którzy tego używają.
Wystarczy, że olejesz kompletnie ten "feature" i będziesz przykładnie używał $_POST itd. No, prawie wystarczy (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) . Oprócz tego musisz inicjować wszystkie "normalne" zmienne, żeby ktoś ci nie zrobił variable poisoning.
Go to the top of the page
+Quote Post
a79rtur
post
Post #5





Grupa: Zarejestrowani
Postów: 331
Pomógł: 1
Dołączył: 23.05.2004
Skąd: Tarnów/Londyn

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


Cytat
Oprócz tego musisz inicjować wszystkie "normalne" zmienne, żeby ktoś ci nie zrobił variable poisoning.

inicjowac? tzn jak ?
Go to the top of the page
+Quote Post
crash
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

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


Np. zmienne post: $dana = $_POST['dana'];...
Go to the top of the page
+Quote Post
hawk
post
Post #7





Grupa: Zarejestrowani
Postów: 521
Pomógł: 0
Dołączył: 3.11.2003
Skąd: 3city

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


Nie, chodziło mi o coś innego. Np:
  1. <?php
  2. if (userIsLoggedIn()) {
  3. $foobar = true;
  4. }
  5. //...
  6. if ($foobar) {
  7.  //ok, logged in
  8. }
  9. ?>

To by była katastrofa z register_globals, bo zawsze można wpisać w przeglądarce www.example.com/index.php?foobar=1. Innymi słowy, trzeba szczególnie uważać, żeby nie używać zmiennych, które mogą być niezainicjowane przez skrypt. Taka praktyka zawsze jest zła, ale tutaj jest szczególnie zła.
W powyższym przykładzie trzeba dodać "else $foobar = false" lub "if (!empty($foobar))".
Go to the top of the page
+Quote Post
a79rtur
post
Post #8





Grupa: Zarejestrowani
Postów: 331
Pomógł: 1
Dołączył: 23.05.2004
Skąd: Tarnów/Londyn

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


czyli np. dostaje login i haslo z formularza np. $_POST['login'], $POST['haslo']
i sprawdzam pozniej w zapytaniu mysql czy są poprawne.
to powinienem ja przypisac do jakis zmiennych np. $login=$_POST['login'] czy sie odwoływac przez $_POST['login'] ?
Go to the top of the page
+Quote Post
crash
post
Post #9





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

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


Obojętnie, wygodniej chyba przypisać do $login...
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.09.2025 - 21:30