![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 15.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Pobieram dane z formularza i wykorzystuję je do wykonania zapytania do MySQL z poleceniem LIKE '%$dane_z_formularza%'.
Wyczytałem że mysql_real_escape_string nie zabezpiecza przed atakiem SQL Injection z użyciem znaków %. Intruz może dopisać '%' w formularzu i wykonać wpisane przez siebie polecenie. Nie mogę usunąć '%' z zapytania bo takie znaki też mogą się znaleść w bazie. Jak zabezpieczyć się przed tym? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 217 Pomógł: 23 Dołączył: 2.12.2007 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Znany problem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Rozwiązań masz kilka Kiedyś użyłem chyba czegoś takiego:
Niemniej można to też inaczej rozwiązać. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 15.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Hm nie do końca o takie rozwiązanie mi chodzi. Przecież fraza może być np. "50%". Dlaczego mam nie wykonywać zapytania tylko dlatego że ktoś wpisał %? Jak to inaczej rozwiązać?
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Ja nie widzę problemu przy zapisie %
możesz go zapisać jako np. {$37$} i stworzyć prosty parser takich znaków ;d a wyświetlisz go potem: chr(37); |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 15.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Widzę że Google ignoruje %
http://www.google.pl/search?hl=pl&q=50...=Szukaj&lr= chyba też tak zrobię ;P |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 677 Pomógł: 89 Dołączył: 31.08.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
przed przekazaniem do zapytania SQL... |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 15.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Rozumiem że %% działa na tej samej zasadzie co // , tak?
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 16:24 |