Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Całościowe filtrowanie danych
Kildyt
post
Post #1





Grupa: Zarejestrowani
Postów: 869
Pomógł: 53
Dołączył: 20.10.2003
Skąd: Przeworsk

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


Cześć! (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Piszę aktualnie nowe jądro i chcę przy użyciu jeden funkcji przefiltrować dane pod wieloma względami (html, mysql itp.).

Poczytałem trochę na w internecie o filtrowaniu danych, nawet znalazłem bardzo prosty i zrozumiały wykres: link w .pdf.

Napisałem funkcję filter i wygląda ona tak:
  1. <?php
  2. function filter($give, $type) {
  3.    if (!$type OR is_string($type)) {
  4.        $error = new error;
  5.        
  6.        $error -> show('Nie podałeś typu zmiennej podczas filtrowania danych! 1 - string (tekst), 2 - int (liczba całkowita)', '1');
  7.    }
  8.    
  9.    if ($type == "2") {
  10.        $type = "is_int";
  11.    }
  12.    
  13.    if ($type == "1") {
  14.        $type = "is_string";
  15.    }
  16.    
  17.    
  18.    if ($type($give)) {
  19.        return $give;
  20.    } else {
  21.        $error = new error;
  22.        
  23.        $error -> show('Zawartość zmiennej różni się od jej typu! 1 - string (tekst), 2 - int (liczba całkowita)', '1');
  24.    }
  25. }
  26. ?>


Przykładowe zastosowanie funkcji to:
  1. <?php
  2. $title = filter($_GET['title'], 1);
  3. $id = filter($_GET['id'], 2);
  4. ?>


Spis zastosowanych funkcji do przefiltrowania zmiennej (w kolejności zastosowania): stripslashes, escapeshellcmd, strip_tags, htmlspecialchars, mysql_real_escape_string, urlencode.

Jak myślicie, czy ten skrypt jest poprawny? Zmienić szereg wykonywanych funkcji, może jakąś dodać, lub usunąć?

Ten post edytował Kildyt 4.10.2008, 15:34:51
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Kildyt
post
Post #2





Grupa: Zarejestrowani
Postów: 869
Pomógł: 53
Dołączył: 20.10.2003
Skąd: Przeworsk

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


Chciałem napisać jedną funkcję dzięki, której będę filtrował dane pochodzące od użytkownika. Np. formularz rejestracji, wyszukiwanie itp. itd.

Nie mogę Cię trochę zrozumieć. Przecież dane pochodzące od użytkownika trzeba przefiltrować, a to, że dodałem wszystko do jednej funkcji to dla mnie oszczędzanie czasu, a w razie problemów zmienię tylko funkcję, a nie cały kod.
Niestety, ale kilka miesięcy temu miałem problem z atakiem XSS. Całe szczęście, że został dodany tylko kod javascript do kodu strony, ale i tak musiałem przefiltrować bazę danych. Od tego czasu wolę się ubezpieczyć i filtrować dane pod każdym względem.
Go to the top of the page
+Quote Post

Posty w temacie


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: 16.10.2025 - 01:39