Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Zabezpieczanie $_POST oraz $_GET
Forum PHP.pl > Forum > Przedszkole
CichyLowca
Szukalem w google ale nie znalazlem Jak zabezpieczyc post i get przed tagami html i niebezpiecznymi znakami? probowalem htmlspecialchars(addslashes($_POST[])); ale nie poszlo. Mam na mysli `` i < > i inne. Prosze o przyklady a nie link do google bo za taka pomoc to ja dziekuje
Turson
Przerzucić się na PDO i bindować dane
Kshyhoo
Odstąpię od reguły i podam kod, który kiedyś znalazłem w sieci:
  1. function zabezpiecz($tablica, $metoda=1) {
  2. foreach ($tablica as $klucz=>$wartosc) {
  3. if (is_array($wartosc)) {
  4. $tablica[$klucz] = zabezpiecz($wartosc, $metoda); // rekurencja dla tablic
  5. } else if ($metoda==1) {
  6. // usuwam ukośniki i zabezpieczam znaki specjalne po swojemu
  7. if (get_magic_quotes_gpc()) $tablica[$klucz] = stripslashes($wartosc);
  8. $tablica[$klucz] = str_replace(
  9. array( '&', '"', '<', '>', "\0", '\\', "'"), // z
  10. array('&amp;', '&quot;', '&lt;', '&gt;', '', '\\\\', "\'"), // na
  11. $wartosc
  12. );
  13. } else if ($metoda==2) {
  14. // dodaję ukośniki, jeżeli PHP ich nie dodaje automatycznie
  15. if (!get_magic_quotes_gpc()) $tablica[$klucz] = addslashes($wartosc);
  16. } else if ($metoda==3) {
  17. // wszystkie zmienne mapuję na liczby całkowite
  18. $tablica[$klucz] = (int)$wartosc;
  19. } else {
  20. // bez zmian dla metod niezdefiniowanych
  21. $tablica[$klucz] = $wartosc;
  22. }
  23. }
  24. return $tablica;
  25. }

get_magic_quotes_gpc oczywiście dla tych, którzy mają stare PHP smile.gif
Użycie:
  1. if (!empty($_GET)) $_GET = zabezpiecz($_GET, 1);
  2. if (!empty($_POST)) $_POST = zabezpiecz($_POST, 1);
  3. if (!empty($_COOKIE)) $_COOKIE = zabezpiecz($_COOKIE, 3);
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.