Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] walidacja danych do bazy
Forum PHP.pl > Forum > Przedszkole
hhg
czy przy wprowadzaniu danych do bazy ta funkcja:

  1. <?php
  2. protected function EscapeData ($data) {
  3. global $db;
  4. if (ini_get('magic_quotes_gpc')) {
  5. $data = stripslashes($data);
  6. }
  7.  
  8. return $db->real_escape_string($data);
  9. }
  10. ?>


powinna miec tam gdzie jest stripslashes czy moze addslashes?
barat
stripslashes smile.gif

Ta funkcja sprawdza, czy jest włączone magic_quotes , i jeśli jest, to usuwa slashe które normalnie magic quotes dodają smile.gif
hhg
aha dzieki smile.gif

w takim razie jezeli $data jest wartoscia z formularza trafiajaca do bazy to skrypt:

  1. <?php 
  2. protected function EscapeData ($data) {
  3. global $db;
  4. if (ini_get('magic_quotes_gpc')) {
  5. $data = stripslashes($data);
  6. }
  7.  
  8. $data = $db->real_escape_string($data);
  9. $data = htmlspecialchars($data);
  10. $data = strip_tags($data);
  11.  
  12. return $data;
  13. }
  14. ?>

jest wystarczajacym zabezpieczeniem danych trafiajacych do bazy z formularza? moze cos tam jest zbedne lub zle?
barat
przy zapytaniu SQL masz string ($data) wzięty w pojedyncze cudzysłowy ? (w którejś książce też wyczytałem, ze to jakoś zabezpiecza ...)

  1. <?php
  2. $query = "SELECT * FROM tabela WHERE kolumna = '$data'";
  3. ?>


Mi się wydaje, że chyba dobrze zabezpieczyłeś smile.gif

Zniwelowałeś działanie magic_quotes (które już wiele serwerów wyłączyło z powodów bezpieczeństwa), potem real_escape ...


PS. zmienne globalne nie są zbyt bezpieczne (podobno...)
hhg
ok dzieki, czyli te wszystkie funkcje przez ktore przechodzi $data są niezbędne/do czegoś się przydadzą...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.