Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: działanie funkcji (filtra)
Forum PHP.pl > Forum > PHP
szczypior
Witam

Napisałem do formularza funkcje mającą na celu zabezpieczenie bazy przed atakami sqlinjection:

  1. <?php
  2. function sprawdz($dane)
  3. {
  4. {
  5. $dane = mysql_real_escape_string($dane);
  6. $dane = addslashes ($dane);
  7. $dane = htmlspecialchars($dane, ENT_QUOTES);
  8. }
  9. return $dane;
  10. }
  11. ?>


dane do sprawdzenia wprowadzane są tak:
  1. <?php
  2. $login = sprawdz($_POST[login]);
  3. $pass = sprawdz($_POST[pass]);
  4. ?>


Po wpisaniu do formularza danych:
Cytat
<a href="bla">asd</a>
i
Cytat
'"/\ <>()
nie uległy one żadnej zmianie i w identycznej formie widoczne są bazie otworzonej w phpmyadmin

W czym może być problem?

PS. Czy połączenie tych trzech filtrów jest ok? Nie przekombinowałem? smile.gif
Blodo
Nie powinno byc przypadkiem tak?

  1. <?php
  2. function sprawdz($dane)
  3. {
  4. $dane = mysql_real_escape_string($dane);
  5. $dane = htmlspecialchars($dane, ENT_QUOTES);
  6. {
  7. $dane = addslashes ($dane);
  8. }
  9. return $dane;
  10. }
  11. ?>


Pamietaj ze magicquotes to tylko takie automatyczne addslashes. Swoja droga aby moc uzywac mysql_real_escape_string musisz miec otwarte polaczenie mysql. Dziwne to, ale tak to dziala.
szczypior
w ten sposób faktycznie działa, co prawda spotykałem się juz z zapisem mysql_real_escape_string jest właśnie w tym ifie.


Czy stosowanie jednocześnie addslashes i mysql_real_escape_string to nie przesada? Bo chyba działają podobnie
flv
Stosowanie addslashes i mysql_real_escape_string jednocześnie nie zabezpieczy cie przed niczym. Wyescape'uje niebezpieczny tekst podwójnie, a jak wiadomo podwójny backslash oznacza tyle co zwykły znak '\', co za tym idzie do niebezpiecznego znaku doda się tylko backslash traktowany jako zwykły znak.
abc667
nie do końca bo każdy znak traktowany jest przecież osobno
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.