Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] przekazywanie uchwytu do MySQL - $GLOBALS
--ozzy--
post
Post #1





Goście







Od dawna mam problem z optymalizacją połączeń i zapytań MySQL.

Moje pytanie brzmi: Czy zapisanie uchwytu do bazy danych w tablicy $GLOBALS jest bezpieczne?
Niektóre publikacje polecają takie rozwiązanie, ale nie wspominają nic o jego bezpieczeństwie, a jest to dosyć istotne.

Cytat
Uchwyt poczenia z baz danych jest nastpnie zapisywany w tablicy superglobalnej $GLOBALS,
aby sta si dostpny w dowolnym zasigu kadego pliku doczajcego plik db.php (albo
doczanego do pliku, który odwouje si do db.php).
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Sky_walker
post
Post #2





Grupa: Zarejestrowani
Postów: 214
Pomógł: 23
Dołączył: 26.09.2005

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


Zmienna $GLOBALS to zwykła tablica asocjacyjna, więc jeśli coś w niej sam ustawisz to będzie równie bezpieczne co każda inna zmienna w innej tablicy (IMG:style_emoticons/default/wink.gif) (IMG:style_emoticons/default/smile.gif)
$GLOBALS nie są powiązane z sesją, ciasteczkami czy czymś gdzie użytkownik może sam pomieszać (pomijając kwestię register_globals) więc nie widzę problemu (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
--ozzy--
post
Post #3





Goście







Uff! Dzięki za dobre wieści (IMG:style_emoticons/default/smile.gif)

Użycie prostego
  1. if(isset($GLOBALS['db'])) return $GLOBALS['db'];


w funkcji łączenia

skróciło czas ładowania mojej strony z ogromnego 0.25s do 0.05s i mniej. Oczywiście to się tyczy tylko najcięższych podstron. Wiem, że czas 0.05s to nadal nie jest powód do dumy, ale dopiero się uczę (IMG:style_emoticons/default/wstydnis.gif)
Go to the top of the page
+Quote Post
Sky_walker
post
Post #4





Grupa: Zarejestrowani
Postów: 214
Pomógł: 23
Dołączył: 26.09.2005

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


jeśli stosujesz konstrukcję isset($GLOBALS['db']) to upewnij się. że w php.ini masz ustawione
Kod
register_globals = off

inaczej ktoś może zrobić zapytanie typu
index.php?db=0
i o ile się nie mylę to skrypt zwróci ci wartość 0 podczas gdy nie powinien zwracać nic.

Ten post edytował Sky_walker 23.03.2012, 15:57:54
Go to the top of the page
+Quote Post
Rysh
post
Post #5





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

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


A czy przypadkiem global w najnowszej wersji nie jest usunięty z PHP?

Ten post edytował Rysh 23.03.2012, 15:59:06
Go to the top of the page
+Quote Post
Sky_walker
post
Post #6





Grupa: Zarejestrowani
Postów: 214
Pomógł: 23
Dołączył: 26.09.2005

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


Pierwsze słyszę. W manualu nic o tym nie ma $GLOBALS
Go to the top of the page
+Quote Post
Rysh
post
Post #7





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

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


Cytat(Sky_walker @ 23.03.2012, 16:00:10 ) *
Pierwsze słyszę. W manualu nic o tym nie ma $GLOBALS

Faktycznie, źle zapamiętałem newsa. Chodziło mi teraz o:
Cytat
Removed legacy features
- register_globals and register_long_arrays ini options.

A nie o $GLOBALS (IMG:style_emoticons/default/smile.gif)
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: 13.10.2025 - 15:38