Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] przekazywanie uchwytu do MySQL - $GLOBALS
--ozzy--
post 23.03.2012, 14:28:02
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
Sky_walker
post 23.03.2012, 14:48:49
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 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


--------------------
Pomogłem? Kliknij poniżej.
Dzięki! :D
Go to the top of the page
+Quote Post
--ozzy--
post 23.03.2012, 15:28:46
Post #3





Goście







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
Go to the top of the page
+Quote Post
Sky_walker
post 23.03.2012, 15:57:29
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


--------------------
Pomogłem? Kliknij poniżej.
Dzięki! :D
Go to the top of the page
+Quote Post
Rysh
post 23.03.2012, 15:58:46
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 23.03.2012, 16:00:10
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


--------------------
Pomogłem? Kliknij poniżej.
Dzięki! :D
Go to the top of the page
+Quote Post
Rysh
post 23.03.2012, 16:10:58
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 smile.gif


--------------------
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 Wersja Lo-Fi Aktualny czas: 5.07.2025 - 06:37