Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Globalne zabezpieczenie skryptu
Amarel
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 30.04.2006

Ostrzeżenie: (10%)
X----


Wpadlem na pomysl, jak zabezpieczyc wszystkie dane otrzymywane od uzytkownika bez zabezpieczania ich za kazdym razem oddzielnie.

  1. <?php
  2. while ( list($key, $value) = each($_GET) ) {
  3.    $_GET[$key] = mysql_real_escape_string(htmlspecialchars(strip_tags($value), ENT_QUOTES));
  4. }
  5.  
  6. while ( list($key, $value) = each($_POST) ) {
  7.    $_POST[$key] = mysql_real_escape_string(htmlspecialchars(strip_tags($value), ENT_QUOTES));
  8. }
  9. ?>


Czy rozwiazanie, ktore zastosowalem jest dobre?

Ten post edytował Amarel 10.04.2009, 23:39:33
Go to the top of the page
+Quote Post
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Nie zawsze jest potrzeba zabezpieczania w ten sposób danych...
  1. masz wartość liczbową - kombinujesz - masz przecież rzutowanie
  2. o array_map" title="Zobacz w manualu PHP" target="_manual słyszałeś? (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif)
  3. ktoś na chama wrzuci N-set pól, a Twój skrypt korzysta tylko z kilku - po co zajeżdżać serwer ubezpieczaniem niepotrzebnych?
Go to the top of the page
+Quote Post
Amarel
post
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 30.04.2006

Ostrzeżenie: (10%)
X----


  1. <?php
  2. if(count($_GET) > 4 OR count($_POST) > 16) {
  3.    die('Zbyt duza liczba parametrow przekazanych do systemu. Hacking?');
  4. }
  5. ?>


Zrobilem cos takiego na poczatku. Wiecej danych nie bede potrzebowal przekazywac w skrypcie, wiec jak ktos przekaze wiecej to skrypt wykona die().
Funkcja array_map to dobry pomysl. Dzieki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Czy zastosowanie obok siebie funkcji mysql_real_escape_string, htmlspecialchars i strip_tags zabezpieczy mnie przed wszystkimi atakami?

Ten post edytował Amarel 11.04.2009, 09:21:33
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




  1. nie o to chodzi... lepiej rób escape'owanie tylu pól, ile trzeba; nieraz przeglądarka wyśle więcej pól (nie wiem, jak to się ma do MAX_FILE_SIZE) i wtedy kicha
  2. wystarczy mysql_real_escape_string" title="Zobacz w manualu PHP" target="_manual, bez przesady. (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
Amarel
post
Post #5





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 30.04.2006

Ostrzeżenie: (10%)
X----


Funkcja mysql_real_escape_string nie zabezpieczy mnie chyba przed XSS, itp... Kod html/java/php dalej bedzie dalo sie wstawic - prawda?
Go to the top of the page
+Quote Post
erix
post
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




No tak, ale to naprawdę zależy od kontekstu...

Jak będziesz chciał użytkownikowi udostępnić XHTML, to będziesz na chama wszystko filtrował? Nie.
Go to the top of the page
+Quote Post
Amarel
post
Post #7





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 30.04.2006

Ostrzeżenie: (10%)
X----


Zgadzam sie z Toba w pelni (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Jednak pisze projekt, w ktorym nie musze udostepniac xhtml. Tak wiec, uzycie tych trzech funkcji do filtrowania wystarczy, aby zabezpieczyc sie przed wszystkimi atakami ( nie zamierzam przyjmowac od uzytkownikow zadnych plikow, a wiec tablicy z plikami nie zabezpieczalem )?
Go to the top of the page
+Quote Post
erix
post
Post #8





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Ale wiesz - dobre nawyki lepiej sobie wyrabiać od początku, tych złych potem jest ciężko się pozbyć.
Go to the top of the page
+Quote Post
Amarel
post
Post #9





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 30.04.2006

Ostrzeżenie: (10%)
X----


Rozumiem Ciebie w pelni, problem jednak polega na tym, ze projekt ten bedzie zawieral naprawde duzo plikow, ktore beda co raz dodawane przez rozne osoby i ciezko mi bedzie to opanowac i wykryc wszystkie bledy. Dlatego wlasnie musialem zastosowac takie rozwiazanie.
Go to the top of the page
+Quote Post
erix
post
Post #10





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Dlatego używa się bibliotek, które są do tego celu - frameworki.

Poza tym, masz jeszcze binding parameters, KISS. (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 06:37