![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 122 Pomógł: 0 Dołączył: 9.11.2008 Ostrzeżenie: (10%) ![]() ![]() |
Można jakoś zoptymalizować te zapytania? Byłbym wdzięczny za podanie błędów, które mogą zaszkodzić bezpieczeństwu bazy.
Wyniki wyświetlam później np. Kod Online: '.$active['COUNT(active)'].'<br />
Ten post edytował vegeta 2.12.2010, 00:38:47 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Przecież nie wstawiasz tutaj żadnych zmiennych do zapytania.
Po co ten temat? To tak jakbyś zapytał jaka jest szansa, że szary kowalski wyniesie Twój sejf z 15cm tytanowymi ściankami i go rozwali. ;p -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 182 Pomógł: 115 Dołączył: 4.03.2009 Skąd: Myszków Ostrzeżenie: (0%) ![]() ![]() |
Nie, tylko jedna mała uwaga: intów nie dawaj w żadne apostrofy/cudzysłowy, nie trzeba. I używaj apostrofów zamiast cudzysłowów w PHP gdy nie korzystasz z wstawiania zmiennych bezpośrednio w treści tekstu.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 60 Pomógł: 20 Dołączył: 30.11.2010 Skąd: 127.0.0.1 Ostrzeżenie: (10%) ![]() ![]() |
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
![]() @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 -------------------- "Imagination is more important than knowledge, because knowledge is limited." ~Albert Einstein
<?php $var = array('foo', 'bar'); ?> |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 122 Pomógł: 0 Dołączył: 9.11.2008 Ostrzeżenie: (10%) ![]() ![]() |
Ok. A da się jakoś połączyć te zapytania, aby było ich mniej?
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Przefiltruj, escapuj etc., Popatrz na kod i odpowiedz mi na pytanie: Co przefiltrować? Co escapować? 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ę? Ale nie masz co się martwić jeżeli nie wstawiasz zmiennych do zapytania ![]() Więc po co piszesz o filtrowaniu i escapowaniu? 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! 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ą -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 60 Pomógł: 20 Dołączył: 30.11.2010 Skąd: 127.0.0.1 Ostrzeżenie: (10%) ![]() ![]() |
@fifi209: No nie trzeba od razu tak besztać. Po to istnieje to forum, aby rozmawiać i wyprowadzać z błędu. Kolega napisał:
Cytat Byłbym wdzięczny za podanie błędów, które mogą zaszkodzić bezpieczeństwu bazy. A ja odpowiedziałem co może mu się przytrafić i na co powinien uważać, tylko tyle.A co do apostrofów: wyraziłem moją niepewność. Cytat Jaką różnicę zrobi wpisanie np. jako username ' and 1=1 /* " and 1=1 /* Dla mnie żadną Tak, chyba trochę robi różnicę. Stringa trzeba zamknąć, a jeżeli wyescape'uje się ciąg podany jako argument zostaną wyescapowane wszystkie apostrofy, a zatem ciąg nie zostanie zamknięty i żaden OR ani nic podobnego nie zdziała, bo zostanie częścią stringa, prawda? Poza tym mowa była o int'ach i w tym przypadku bez podania apostrofów escapowanie nie pomogłoby. Chyba, że ja tutaj czegoś nie pojmuję. Argument, który przemawia za PDO, to przenośność pomiędzy bazami danych. Możliwe, że w przyszłości będziemy musieli uruchomić ten skrypt na innym serwerze, na którym nie będzie MySQL tylko PostgreSQL i co wtedy? Będziemy przepisywać cały kod? Moim zdaniem lepiej pomyśleć o tym wcześniej niż później kląć pod nosem i rezerwować sobie godziny nerwów. Nie rozumiem też tego porównania do koparki. Za pomocą PDO wszystko miałoby zwięzłą i zrozumiałą formę. Mogłbym zrozumieć gdyby chodziło o jakąś zewnętrzną bibliotekę, którą trzeba dołączyć, ale PDO to standard.. Dzięki za ciekawy link! Muszę go później dokładniej przejrzeć. Pozdrawiam, mmica Ten post edytował mmica 2.12.2010, 17:39:12 -------------------- "Imagination is more important than knowledge, because knowledge is limited." ~Albert Einstein
<?php $var = array('foo', 'bar'); ?> |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Przenośność swoją drogą ale pamiętaj nie wszystko będzie działało tak "hop siup"
![]() -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 1 182 Pomógł: 115 Dołączył: 4.03.2009 Skąd: Myszków Ostrzeżenie: (0%) ![]() ![]() |
Chcąc zapewnić pełną przenośność lepiej użyć Doctrine (Propela).
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 122 Pomógł: 0 Dołączył: 9.11.2008 Ostrzeżenie: (10%) ![]() ![]() |
Dobra, ale jak je zoptymalizować (zrobić z tych zapytań jak najmniejszą liczbę przy tym samym wyniku)?
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 07:47 |