• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

PDO a ochrona przed mysql injection

Object Storage Arubacloud
0 głosów
670 wizyt
pytanie zadane 9 października 2019 w PHP przez Paproch Użytkownik (700 p.)
Witam

Zastanawiam się nad zabezpieczeniami skryptu. Wszystkie zapytania do bazy ma zrobione na PDO. Przy rejestrowaniu użytkownika i logowaniu użyłem wyrażeń regularnych w celu wycięcia ewentualnych niebezpiecznych znaków. Dozwolone są tko [a-z] [0-9]

Dodatkowo mam formularz kontaktowy, gdzie można wpisać dowolny tekst bez żadnych ograniczeń. Dane są zapisywane w bazie. Tutaj również użyłem PDO i  zrobiłem to schematem prepare, bindvalue, execute.

Pytanie brzmi, czy same PDO zabezpieczy mnie w pełni przed mysql injection? Bo niby teoretycznie zabezpiecza, a jak jest w praktyce? Lub w jaki sposób mógłbym jeszcze zabezpieczyć sie przed ewentualnymi atakami?

Czy użycie wyrażenia regularnego które wycinalo by znaki tj. = - ' " *% jest dobrym pomysłem?

Pozdrawiam
1
komentarz 9 października 2019 przez Patrycjerz Mędrzec (192,320 p.)
Pytam z ciekawości… Jeśli samo PDO chroni przed SQL injection, to po co jeszcze ograniczony zakres znaków (nie spowodowany logiką biznesową)?
komentarz 9 października 2019 przez Paproch Użytkownik (700 p.)
Login nie może zawierać polskich znaków, zalecenie odgórne. Dlatego taka restrykcja.
komentarz 9 października 2019 przez adrian17 Ekspert (344,860 p.)
To... brzmi jak celowe zmniejszenie bezpieczeństwa.
komentarz 9 października 2019 przez Paproch Użytkownik (700 p.)
A coś więcej? Dlaczego tak sądzisz? Cały czas się uczę, więc uzasadnij proszę.
1
komentarz 9 października 2019 przez Comandeer Guru (600,810 p.)

@adrian17, restrykcja dotyczy loginu. Ufam, że hasła nie mają takich obostrzeń. 

komentarz 9 października 2019 przez Aisekai Nałogowiec (42,190 p.)
A nie możesz użyć jakiegoś ORMa który by nie sklejał dynamicznie zapytania, tylko używał jakiś named parameters lub coś w ten deseń?
komentarz 9 października 2019 przez adrian17 Ekspert (344,860 p.)
To... jest właśnie PDO. To już jest zabezpieczone.
komentarz 9 października 2019 przez Paproch Użytkownik (700 p.)
@adrian17 o to mi chodziło. Wiem że PDO jest bezpieczne, ale się zastanawiałem jakie są powszechnie stosowane praktyki wśród programistów. Czy stosuje się coś jeszcze, jak tak to co.

Dzięki tak czy inaczej za odpowiedź

1 odpowiedź

+1 głos
odpowiedź 9 października 2019 przez Comandeer Guru (600,810 p.)
wybrane 9 października 2019 przez Paproch
 
Najlepsza
Warto dorzucić: https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php/60496#60496

No i warto też przypomnieć, że prepared statements wypada używać zawsze, gdy w zapytaniu są jakiekolwiek dane z zewnątrz, nawet te, które wyciągnęliśmy właśnie z bazy. Inaczej narażamy się na 2nd order SQLi.
komentarz 9 października 2019 przez Paproch Użytkownik (700 p.)
Dziękuję bardzo za rzeczową odpowiedź.

Podobne pytania

+1 głos
2 odpowiedzi 370 wizyt
pytanie zadane 11 sierpnia 2020 w PHP przez Bakkit Dyskutant (7,600 p.)
0 głosów
3 odpowiedzi 498 wizyt
pytanie zadane 12 maja 2020 w PHP przez Bakkit Dyskutant (7,600 p.)
0 głosów
1 odpowiedź 141 wizyt
pytanie zadane 16 lutego 2019 w PHP przez gucisz Nowicjusz (160 p.)

92,551 zapytań

141,393 odpowiedzi

319,523 komentarzy

61,936 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...