Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> 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 smile.gif


--------------------
php 5.1.2 & Apache 2.0.50 & MySQL 4.1.7 @ WinXP Pro
..:: GG 6449856 ::..
www.londyn.me.uk - ogłoszenia mieszkaniowe dla Londynu
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
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_...)?


--------------------
Nie lubię jednorożców.
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 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 ?


--------------------
php 5.1.2 & Apache 2.0.50 & MySQL 4.1.7 @ WinXP Pro
..:: GG 6449856 ::..
www.londyn.me.uk - ogłoszenia mieszkaniowe dla Londynu
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'] ?


--------------------
php 5.1.2 & Apache 2.0.50 & MySQL 4.1.7 @ WinXP Pro
..:: GG 6449856 ::..
www.londyn.me.uk - ogłoszenia mieszkaniowe dla Londynu
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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 05:20