Jak zabezpieczyc sie przed SQL injection ?

Jak zabezpieczyc sie przed SQL injection ?
masterO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1025
0

Witam.
Zrobilem na stronie kilka formularzy, pola do wpisywania loginu hasla itd.

  1. Jakie funkcje dac w php zeby wpisany tekst ktory zapisujemy do bazy
    byl zabezpieczony przed znaczkami typu ' > < " itd ?

  2. Jaki zestaw funkcji potrzebny jest do odczytu z bazy tych danych
    ktore beda zapisane poprzez funkcje zabezpieczajce

czyli jak ktos wpisze '' OR pass = "" a w bazie bedzie wygladac to
'' or pass = "" to zeby przy odczycie pokazal wpis orginalnyu
a nie ten z backsleszami ?

  • Rejestracja: dni
  • Ostatnio: dni
0

użyj tej funkcji :) :

Kopiuj
mysql_escape_strings($POST['dane_z_pola_w_twoim_formularzu'];
masterO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1025
0

Dzieki na Twoj wzor znalazlem pg_escape_string bo uzywam postgresa ale zaraz potestuje to co wchodzi do bazy i jak to wyjac zeby bylo good :) dzieki

masterO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1025
0

Zrobilem formularz w ktorym wpisuje tak: '' " > < d; "
a na wyjsciu echo dla $_POST['password'] mam wynik: '' " > < d; "
ale nie uzywalem zadnej funkcji escape string to chyba juz nie musze nic dodawac skoro samo sie zamienia ?
ale jak np mam formularz wktorym wpisuje ktos:
test ' kkfowkeof
ale dodatkowo sa pola ktore trzeba wypelni a uzytkownik nie wypelni
to jak strona zwraca wpis uzytkownika to mam potem
test \' kkfowkeof
i im wiecej wysylam tym wiecej znaczkow \\ mam
to jest jakas funkcja co to usuwa przy czy mam zrobic str replace ?

  • Rejestracja: dni
  • Ostatnio: dni
0

To pewnie słynne magic_quotes, takie narzędzie co automatycznie dodaje backslashe przed apostrofami i takimi tam. Wyłącz to i zrób po swojemu. I tak w ogóle użyj PDO i parametrów.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.