Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] przekazywanie uchwytu do MySQL - $GLOBALS
Forum PHP.pl > Forum > Przedszkole
-ozzy-
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).
Sky_walker
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 wink.gif 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 smile.gif
-ozzy-
Uff! Dzięki za dobre wieści 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ę wstydnis.gif
Sky_walker
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.
Rysh
A czy przypadkiem global w najnowszej wersji nie jest usunięty z PHP?
Sky_walker
Pierwsze słyszę. W manualu nic o tym nie ma $GLOBALS
Rysh
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 smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.