Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Zabezpieczanie zmiennych GET i POST
lsrtb
post
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 22.11.2015

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


Witam.

Kiedyś uczyłem się PHP od podstaw, potem naukę porzuciłem i zamierzam wrócić. Kiedyś stworzyłem takie coś:

  1. function var_filter($variable_type, $variable, $mres, $addslashes, $strip_tags)
  2. {
  3. if($variable_type == 'post') $var = $_POST[''.$variable.''];
  4. else if($variable_type == 'get') $var = $_GET[''.$variable.''];
  5. if($strip_tags == 1) $var = strip_tags($var);
  6. if($addslashes == 1) $var = addslashes($var);
  7. if($mres == 1) $var = mysql_real_escape_string($var);
  8. return $var;
  9. }
  10.  
  11. $get_confirm = var_filter('get', 'confirm', 1, 1, 1);


Było to moje "super zabezpieczenie" zmiennych GET i POST. Wiem, że nie ma to nic wspólnego ze standardami czy bezpieczeństwem, dlatego chcę wszystko poprawić.

Otóż jak zabezpieczyć zmienne GET i POST na mojej całej stronie, tak aby nie można było dodać żadnego złośliwego kodu, ataku SQL Injection itd. ?

Wystarczy po prostu mysql_real_escape_string($var) i będzie wszystko 100% bezpieczne?

Dodam, że zmienne często są w zapytaniach SQL. W zmiennych POST/GET będą używane tylko litery alfabetu duże/małe, cyfry, spacja i średnik.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Tomplus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 879
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

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


poczytaj o PDO i wstrzykiwaniu zmiennych do zapytań np.:
  1. $mysql->bind('id', $_GET['id']);
  2. $mysql->exec("SELECT * FROM my_base WHERE id= :id");

Go to the top of the page
+Quote Post
bobek358
post
Post #3





Grupa: Zarejestrowani
Postów: 143
Pomógł: 22
Dołączył: 17.11.2007

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


Tak jak kolega pisze tylko PDO i bindowanie wszystkich parametrów.
Dodatkowo możesz stosować:

strip_tags oraz htmlspecialchars w celu zabezpieczenia przez xss

mysql_real_escape_string - tego już nie używamy bo w wersji 7 PHP nie będzie już mysql_query tylko PDO i MySQLi.
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: 22.08.2025 - 20:30