Temos pavadinimas: WordPress, Shopify ir PHPFusion programuotojų bendruomenė :: Apie sql inject

Parašė Britas· 2012 Sau. 6 02:01:36
#1

Sveiki visi!

Turiu viena sistemėlę, kuri yra surišta su serveriu ir pro ten vyksta pagr. valdymas. Vienas žmogus taipogi naudojo tą sistemą ir sakė pas jį per pačią sistemą įsilaužė į phpmyadmin. Vieni kalba apie sql inject, taigi kaip nuo to apsisaugoti?

Parašė Žmogus· 2012 Sau. 6 10:01:44
#2

Šiaip prie kintamujų prirašyti, ten visoiu xujniu (tiksliai neatsimenu) ir tu kaip ir apsaugotas :D

Parašė nbanba· 2012 Sau. 6 13:01:17
#3

Norint apsisaugoti nuo SQL injekcijų visiems $_POST[] ir $_GET[] metodais perduodamiems duomenims gali naudoti specialias PHP-Fusion funkcijas, kaip pavyzdžiui stripinput(), jeigu tai yra skaičius (tarkim naujienos ID ar pan.) patartina naudoti isNum() ir patikrinti ar tai yra skaičius. Taip bent minimaliai apsisaugosi nuo pagrindinių SQL injekcijų.

Pvz.:


 
$kintamasis = stripinput($_GET['kategorija']);
 


Sėkmės!

Parašė Britas· 2012 Sau. 6 14:01:25
#4

Ačiū, bandysiu daryti kaip Irmantas sakė. ; )

Parašė avice· 2012 Sau. 6 14:01:00
#5

arba bandyk stai ka:

 
function filter($i) {
   $data = trim(htmlentities(strip_tags($i)));
   if (get_magic_quotes_gpc())
   $i = stripslashes($i);
   $i = mysql_real_escape_string($i);
   return $i;
}
function get($i) {
   return (isset($_GET[$i]) or !empty($_GET[$i])) ? filter($_GET[$i]) : false;
}
function post($i) {
   return (isset($_POST[$i]) or !empty($_POST[$i])) ? filter($_POST[$i]) : false;
}
echo get('testas'); // lygus $_GET['testas'] tik , kad prafiltruotas.
echo post('testas'); // lygus $_POST['testas'] tik , kad prafiltruotas.
if(get('testas')) // lygus if(isset($_GET['testas']) or !empty($_GET['testas']))
 

Redagavo avice· 2012 Sau. 6 14:01:12