Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Bezpieczeństwo - jak usunąć kod php ze stringa
Forum PHP.pl > Forum > Przedszkole
mkdes
Filtruję zmienną POST i chciałbym usunąć z niej wszystkie fragmenty kodu PHP typowe dla niego np. include.
Czy jest może na to jakaś gotowa funkcja?

Przerobiłem coś z manuala i tak dbam o bezpieczeństwo zmiennych GET i POST. Działa na pewno.

  1. <?php
  2. /*------ Copyright MKDES.pl ------- */
  3. /* ----- Kod funkcji licencjonowany na zasadach GPL ---- */
  4.  
  5. function czyscZmienne($x)
  6. {
  7. if (is_array($x)) {
  8.  
  9. return array_map('czyscZmienne', $x);
  10. }
  11. $x = trim($x);
  12. $x = strip_tags($x);
  13. $x = mysql_escape_string($x);
  14. $x = htmlspecialchars($x);
  15. $x = str_replace('.php','', $x);
  16. $x = str_replace(':','',$x);
  17. $x = str_replace('//','',$x);
  18. $x = str_replace('http','',$x);
  19.  
  20. return $x;
  21.  
  22. }
  23. ?>


Użycie:
  1. <?php
  2. $_POST = array_map('czyscZmienne', $_POST); 
  3. $_GET = array_map('czyscZmienne', $_GET);
  4. ?>



TAG: filtrowanie zmiennych POST i GET

UWAGA
Dla zmiennych w UTF-8 niektóre funkcje czyszczące zmieniają ilość znaków, więc jeśli po przesłaniu zmiennych, tekstu chcecie liczyć ilość znaków będzie ona inna niż faktycznie wpisana w formularzu.
To jest kwestia Multibyte String: http://pl.php.net/manual/pl/book.mbstring.php

Napewno nie ma problemu z polskimi znakami.
php programmer
Dla bezpieczeństwa powinna wystarczyć funkcja
addslashes" title="Zobacz w manualu PHP" target="_manual
bełdzio
Cytat(php programmer @ 17.08.2007, 11:12:01 ) *
Dla bezpieczeństwa powinna wystarczyć funkcja
addslashes" title="Zobacz w manualu PHP" target="_manual

czyjego?

Cytat(mkdes @ 17.08.2007, 09:05:56 ) *
Filtruję zmienną POST i chciałbym usunąć z niej wszystkie fragmenty kodu PHP typowe dla niego np. include.
Czy jest może na to jakaś gotowa funkcja?

jeśli chcesz filtrować słowa stricto PHPowe, ściągnij GeShi i przejrzyj tamte filtry
Hazel


htmlentities() - rozwinięta forma htmlspecialchars().
mkdes
No tak, ale mnie raczej chodziło o rozwiązanie identyczne jak strip_tags ale żeby usuwało PHP
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.