Čiščenje inputa in obremenitev strežnika
2 naročnika
2 naročnika
Tako, zanima me če bi taka koda ob velikem obisku preobremenejevala strežnik:
$input = $_POST['your_text'];
$url_a = str_replace("'", "", $input);
$url_b = str_replace('"', "", $url_a);
$url_c = str_replace("<", "", $url_b);
$url_d = str_replace(">", "", $url_c);
$output = str_replace("\ ", "", $url_d);
$clean_your_text = $output;
in ali je kak boljši način da odstranič php, html ... kodo in podobno svi*jarijo ki ti jo uporabniki našopajo v forme in $_GET ? Pa pri tej kodi je še en problem ... kako odstraniti \ ?, v predzadnji vrstici bi moralo biti "\ ", vendar vemo zakaj ne gre tako, prav tako nemorem uporabiti '\' ... kak predlog ?
9 odgovorov
Rad bi odstrani <>" in '.
Edit: Rad bi odstranil še \ ker mi php sam spremeni " v \" pa če potem odstranim " dobim kup \\ za brezveze, če še to odstranim dobim "" (nič), oz. vnos brez teh znakov, vendar kako odstraniti \ ? Tako str_replace("\", ... ne gre ... :P
magicquotesgpc = off
Zadeva je, vsaj kar se mene tice, povsem neuporabna, naredi vec nevsecnosti, kot koristi. Pazit moras seveda edino to, da escapas vse stringe, preden jih zapisujes v mysql, oziroma katerokoli bazo pac ze uporabljas, v nasprotnem primeru seveda tvegas SQL injection.
znake <, >, " in ' pa najlazje pretvoris v html entities s funkcijo htmlspecialchars(), ali bi se jih rad povsem resil? Ni mi cisto jasen razlog, zakaj bi se tega rad resil...
SQL injectiona se resis, ce escapas stringe, a ne? Prav enostavno... V tvojem primeru so sicer ze escapani, ce uporabljas magicquotesgpc = on, torej znakov " in ' ne rabis ven brisat...
Ce pa ukines samo znake < in > bos pa se vedno videl v komentarjih dele HTML kode, le brez teh znakov... Mogoce bi bilo zate najboljse, da uporabis v ta namen funkcijo strip_tags()...