![]() |
![]() ![]() |
![]() |
![]() ![]()
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)
|
|
|
![]()
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.
|
|
|
![]()
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_...)?
|
|
|
![]()
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. |
|
|
![]()
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 ? |
|
|
![]()
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'];...
|
|
|
![]()
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:
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))". |
|
|
![]()
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'] ? |
|
|
![]()
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...
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.09.2025 - 21:30 |