Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Optymalizacja i bezpieczeństwo zapytań
vegeta
post
Post #1





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 9.11.2008

Ostrzeżenie: (10%)
X----


Można jakoś zoptymalizować te zapytania? Byłbym wdzięczny za podanie błędów, które mogą zaszkodzić bezpieczeństwu bazy.

  1. $zarejestrowani = "SELECT COUNT(id) FROM `users`";
  2. $zarej = mysql_fetch_array(mysql_query($zarejestrowani));
  3. $online = "SELECT COUNT(active) FROM `users` WHERE active='1' and last_action > ".(time() - 900)."";
  4. $active = mysql_fetch_array(mysql_query($online));
  5. $ostatni = "SELECT `login` FROM `users` ORDER BY `id` DESC LIMIT 1";
  6. $ost = mysql_fetch_array(mysql_query($ostatni));
  7. $mostactive = "SELECT `mostactive` FROM `inne` WHERE `id`='1'";
  8. $mostact = mysql_fetch_array(mysql_query($mostactive));


Wyniki wyświetlam później np.
Kod
Online: '.$active['COUNT(active)'].'<br />


Ten post edytował vegeta 2.12.2010, 00:38:47
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mmica
post
Post #2





Grupa: Zarejestrowani
Postów: 60
Pomógł: 20
Dołączył: 30.11.2010
Skąd: 127.0.0.1

Ostrzeżenie: (10%)
X----


Przefiltruj, escapuj etc., a najlepiej przejdź na OOP i skorzystaj z PDO i preparowania zapytań. Z PDO masz mniej rzeczy na głowie i możesz spać spokojnie wiedząc, że wszystko jest w porządku i niczego nie zapomniałeś przefiltrować pod kątem niepożądanego kodu. Ale nie masz co się martwić jeżeli nie wstawiasz zmiennych do zapytania (IMG:style_emoticons/default/winksmiley.jpg)

@Mephistofeles: Widzę, że są dwie różne szkoły. Jedni radzą zawsze używać apostrofów, a inni wręcz przeciwnie. Czy brak apostrofów nie ułatwia czasami sql injection? Możliwe, że coś pomieszałem, a jeżeli tak się stało niech mnie ktoś oświeci. W samym SQL nie używać, bo nie ma po co, ale obsługa bazy przez PHP to już inna baja, nie? (biorę pod uwagę, że w tym kodzie ma to małe znaczenie [statyczne zapytania], ale przeczyta to ktoś dopiero zaczynający zabawę z PHP i będzie buble pisał, a nie kod..)

Pozdrawiam,
mmica
Go to the top of the page
+Quote Post
Fifi209
post
Post #3





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(mmica @ 2.12.2010, 16:06:00 ) *
Przefiltruj, escapuj etc.,

Popatrz na kod i odpowiedz mi na pytanie: Co przefiltrować? Co escapować?
Cytat(mmica @ 2.12.2010, 16:06:00 ) *
a najlepiej przejdź na OOP i skorzystaj z PDO i preparowania zapytań. Z PDO masz mniej rzeczy na głowie i możesz spać spokojnie wiedząc, że wszystko jest w porządku i niczego nie zapomniałeś przefiltrować pod kątem niepożądanego kodu.

A jak masz wykopać jedną małą dziurę to kupisz koparkę?
Cytat(mmica @ 2.12.2010, 16:06:00 ) *
Ale nie masz co się martwić jeżeli nie wstawiasz zmiennych do zapytania (IMG:style_emoticons/default/winksmiley.jpg)

Więc po co piszesz o filtrowaniu i escapowaniu?

Cytat(mmica @ 2.12.2010, 16:06:00 ) *
Widzę, że są dwie różne szkoły. Jedni radzą zawsze używać apostrofów, a inni wręcz przeciwnie.

Wystarczy popatrzeć na wydajność.
Link!
Cytat(mmica @ 2.12.2010, 16:06:00 ) *
Czy brak apostrofów nie ułatwia czasami sql injection?

Jaką różnicę zrobi wpisanie np. jako username
' and 1=1 /*
" and 1=1 /*

Dla mnie żadną
Go to the top of the page
+Quote Post

Posty w temacie


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: 8.10.2025 - 03:13