Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Bezpieczeństwo - jak usunąć kod php ze stringa
-mkdes-
post
Post #1





Goście







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.

Ten post edytował mkdes 17.08.2008, 09:40:11
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
php programmer
post
Post #2





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 5
Dołączył: 8.11.2004
Skąd: trójmiasto

Ostrzeżenie: (0%)
-----


Dla bezpieczeństwa powinna wystarczyć funkcja
addslashes" title="Zobacz w manualu PHP" target="_manual
Go to the top of the page
+Quote Post
bełdzio
post
Post #3





Grupa: Zarejestrowani
Postów: 690
Pomógł: 81
Dołączył: 6.04.2005
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


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


--------------------
Go to the top of the page
+Quote Post
b_chmura
post
Post #4





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

Ostrzeżenie: (0%)
-----


htmlspecialchars" title="Zobacz w manualu PHP" target="_manual OR strip_tags" title="Zobacz w manualu PHP" target="_manual
Go to the top of the page
+Quote Post
Hazel
post
Post #5





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----




htmlentities() - rozwinięta forma htmlspecialchars().


--------------------
Go to the top of the page
+Quote Post
-mkdes-
post
Post #6





Goście







No tak, ale mnie raczej chodziło o rozwiązanie identyczne jak strip_tags ale żeby usuwało PHP
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 11:47