![]() |
![]() ![]() |
![]() |
-Gość_Gnomik- |
![]()
Post
#1
|
Goście ![]() |
Witam!
Otóż mam pewien problem (przepraszam jeśli umieściłem go w złym dziale - dla Was będzie prosty więc chyba mimo wszystko chyba pasuje.) Znalazłem na tym forum tematy tyczące się niezdefiniowanych zmiennych, ale ani jeden nie brał pod uwagę mojego problemu. Otóż w beznadziejnie prostym kodzie (wybaczcie nazwę zmiennej ale to moje Default nazewnictwo jeśli sobie z czymś nie radzę): index.php:
Otrzymuję powiadomienie w drugiej lini "Unidenfined variable: dupa". Nie byłoby w tym praktycznie nic dziwnego jeśli "error_reporting = E_ALL" ale... Dlaczego dostaję to powiadomienie w przypadku wywolania "index.php?dupa=wielka" ? Nie działa mi kompletnie przekazywanie zmiennych przez parametr. error_reporting = E_ALL ze względów kosmetycznych już sobie wyśrednikowałem, ale co z tego jeśli problem nie znika? Nie jestem w stanie przekazać ani jednej zmiennej przez "index.php?..." Środowisko: Apache/2.0.55 (Win32) i php/5.1.2 Z góry dziękuję za odpowiedź, Pozdrawiam Gnomik |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Najzwyklej w świecie masz wyłączone register_globals. I bardzo dobrze (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) To jest niebezpieczna metoda. Do zmiennych z url musisz sie odwolywac z $_GET, czyli:
ps: i uwierz. jest multum wątków o tym zagadnieniu (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
-Gość_Gnomik- |
![]()
Post
#3
|
Goście ![]() |
Mhm, rozumiem.
W takim razie pociągnę pytanie dalej: jakie niebezpieczeństwa ciągnie za sobą włączenie register_globals? Nie chodzi mi o kwestie dogłębne, rozumiem że na względzie mamy oczywiście bezpieczeństwo. Pytam, ponieważ wszysytko jest dla mnie tylko na potrzeby własne - oczywiście nauki php. Jaka jest różnica użyciem: echo $_GET('dupa'); a użyciem: echo $dupa; Przepraszam najmocniej że nie przeszukałem dogłębniej forum w poszukiwaniu odpowiedzi na moje poprzednie pytanie. Nie miałem w zamiarze zaśmiecania forum. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Pozdrawiam, Gnomik |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Na twoje kolejne pytanie tez juz padaly odpowiedzi (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
W skrócie: bo tak (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) . żeby ci sie haker nie wczepil nie tam gdzie trzeba. Nie wiesz wowczas skąd dana zmienna pochodzi. Bo ty myslisz ze z sesji, a w rzeczywistości np. z url (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) I juz masz problem (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) poczytaj se to bys uniknąl kolejnych takich postów: http://forum.php.pl/index.php?showtopic=30056&st=0 a ten zamykam |
|
|
![]()
Post
#5
|
|
Grupa: Przyjaciele php.pl Postów: 2 712 Pomógł: 23 Dołączył: 27.10.2003 Skąd: z kontowni Ostrzeżenie: (0%) ![]() ![]() |
Ano niebezpieczeństwo jest takie, że chcesz użyć zmiennej sesyjnej i po włączeniu register_globals nie musisz odwoływać się do niej przez $_SESSION['dupa'] tylko zwyczajnie $dupa.
Ale jakaś bystrzejsza osoba odkrywa to i wywołuje Twój skrypt tak: skrypt.php?dupa=wołowa I wtedy twój skrypt, nieświadom niczego, nie pobiera zmiennej z sesji tylko z urla, i wtedy, mówiąc kolokwialnie, dupa! A co do używania tego do własnych potrzeb: jeśli nabierzesz złych nawyków na małych skryptach to na pewno nie zmienisz ich podczas tworzenia dużych. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.09.2025 - 12:26 |