Pereiti prie turinio

Rekomenduojami pranešimai

Aš tai simple.... dėl suprantamų preižasčių visko nepateiksiu...

		$object_x=str_replace("$","",$object_x);
	$object_x=str_replace(" insert","",$object_x);
	$object_x=str_replace("insert ","",$object_x);
	$object_x=str_replace(" or","",$object_x);
	$object_x=str_replace("or ","",$object_x);
	$object_x=str_replace(" delete","",$object_x);
	$object_x=str_replace("delete ","",$object_x);
	$object_x=str_replace(" update","",$object_x);
	$object_x=str_replace("update ","",$object_x);
	$object_x=str_replace("||","",$object_x);
	$object_x=str_replace("document.location","",$object_x);

 

"Susirinkau" f-ją ir su ja viska filtruoju... :huh:

Redagavo crezzyman
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Aš šį filtravimą naudoju http://www.takefun.net paieškoms... :huh: ne koks forumas tai bėdų nėra :D

 

+ if(!is_numeric($page)){$page="0";} su šituo dalyku užtikrinu kad bent viena vieta saugi kur įvedamas puslapis :D.... :D

 

 

Šitas... "apsaugas" pats dariau :D

Redagavo crezzyman
Nuoroda į pranešimą
Dalintis kituose puslapiuose
Aš tai simple.... dėl suprantamų preižasčių visko nepateiksiu...

		$object_x=str_replace("$","",$object_x);
	$object_x=str_replace(" insert","",$object_x);
	$object_x=str_replace("insert ","",$object_x);
	$object_x=str_replace(" or","",$object_x);
	$object_x=str_replace("or ","",$object_x);
	$object_x=str_replace(" delete","",$object_x);
	$object_x=str_replace("delete ","",$object_x);
	$object_x=str_replace(" update","",$object_x);
	$object_x=str_replace("update ","",$object_x);
	$object_x=str_replace("||","",$object_x);
	$object_x=str_replace("document.location","",$object_x);

 

"Susirinkau" f-ją ir su ja viska filtruoju... :huh:

Nelabai suprantu kodėl reiktų tiek daug žodžių filtruoti...

Man tai atrodo, kad apskritai užtenka ' pakeisti į \', o " į \" prieš dedant. Ir, aišku, kintamuosius apskliaudinėti kabutėmis. Ar čia kažkur galėtų atsirasti saugumo spraga?

Arba dar geriau - jau minėta mysql_real_escape_string().

 

P.S. Jei jau nusprendi tiek daug žodžių replaceint, tai manau, kad geriau taip daryti:

$blogi_zodziai=array('$', ' insert', 'insert ', ' or', 'or ', ' delete', 'delete ', ' update', 'update ', '||', 'document.location');
$object_x=str_replace($blogi_zodziai, "", $object_x);

Man atrodo, kad toks kodas vykdomas greičiau, nei taviškis.

Na, bent jau aš tai naudoju visą laiką tokį variantą, kai daugiau nei 2 simbolių rinkinius reikia replaceint tuo pačiu tekstu. :D

Nuoroda į pranešimą
Dalintis kituose puslapiuose
  • po 2 savaičių...

O tarkim netiktų vien htmlspecialchars() funckija?

Vistiek pakeičia kabutes (") į &qout;

+ tai ne vien sql apsauga

O jis kaip nors replaceina ' ?

Jei taip, ir tau tinka &quote;, tai tada gali, bet uzims daugiau vietos DB (nors retai tos kabutes naudojamos :rolleyes:)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

PHP turi funkciją mysql_real_escape_string(), kuri skirta apsisaugoti nuo SQL injekcijų.

 

PHP.net komentaruose siūloma naudoti tokią funkciją:

 

function quote_smart($value) {
  // Stripslashes
  if (get_magic_quotes_gpc()) {
   $value = stripslashes($value);
  }
  // Quote if not integer
  if (!is_numeric($value) || $value[0] == '0') {
   $value = "'" . mysql_real_escape_string($value) . "'";
  }
  return $value;
}

 

Jos pritaikymas:

 

mysql_query("INSERT INTO `users` SET `name` = ".quote_smart($_POST['name']));

 

Ir viskas.

 

O prieš išvedant į puslapį bet kokius duomenis, kuriuos gavote iš vartotojo, geriausia juos prafiltruoti (apsauga nuo javascript ir pan.):

 

echo htmlentities($value, ENT_QUOTES, 'UTF-8');

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...