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

question-closed Które rozwiązanie jest lepsze, bezpieczniejsze

0 głosów
192 wizyt
pytanie zadane 5 stycznia 2021 w PHP przez wizarddos Nałogowiec (27,970 p.)
zamknięte 5 stycznia 2021 przez wizarddos

przychodzę dziś do was z pytaniem które rozwiązanie na wykonywanie zapytań w PHP stosować? Które z nich jest bezpieczniejsze pod kątem SQL injection?

Sposób z funkcją query?

$wynik = $polaczenie->query("INSERT INTO tabela VALUES('$val','$val2','$val3'");

Czy polecenia przygotowane?

$query = "INSERT INTO tabela VALUES(?,?,?)";
$polecenie->$polaczenie->prepare($query);
$polecenie->bind_param("iii",$val1,$val2,$val3);
$polecenie->execute();

 

komentarz zamknięcia: Otrzymano odpowiedź

1 odpowiedź

+3 głosów
odpowiedź 5 stycznia 2021 przez Bartek2210 Obywatel (1,310 p.)
wybrane 5 stycznia 2021 przez wizarddos
 
Najlepsza
2 opcja bezpieczniejsza, bo nie będzie możliwa modyfikacja zapytania.

W pierwszym zapytaniu jeżeli w zmiennej $val3 znalazło by się np. dowolnytekst'); DELETE FROM tabela; --

to usunięte zostałyby wszystkie dane z tabeli. Warto też oprócz przygotowania samego zapytania sprawdzać po stronie php czy wstawiane dane są poprawne. Np. jeżeli zmienna powinna być cyfrą to wcześniej sprawdzasz czy rzeczywiście tak jest funkcją is_numeric

Podobne pytania

0 głosów
1 odpowiedź 221 wizyt
pytanie zadane 9 września 2020 w HTML i CSS przez Bartek12 Mądrala (5,510 p.)
+1 głos
1 odpowiedź 419 wizyt
pytanie zadane 13 stycznia 2021 w Sieci komputerowe, internet przez Igorek Mądrala (6,290 p.)
0 głosów
1 odpowiedź 459 wizyt
pytanie zadane 6 lipca 2022 w C i C++ przez Daaa22 Dyskutant (8,250 p.)

93,604 zapytań

142,529 odpowiedzi

322,996 komentarzy

63,092 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

Kursy INF.02 i INF.03
...