ďťż
Podstrony
|
telcocafeChciałbym, byście sprawdzili ten kod pod względem bezpieczeństwa i błędów.Na początek funkcja TestForm: function TestForm($val,$c,$s,$t) { if($t==1) { $val=strip_tags($val); } if($c==1) { $val=trim(htmlspecialchars($val,ENT_QUOTES)); } if($s==1) { $val=str_replace('\\','',$val); $val=str_replace('\'','',$val); } return $val; } Teraz kod rejestracji/aktualizacji profilu: if(isset($_GET['xu_OK']) || isset($_POST['xu_OK'])) { exit; } if(isset($_POST['xu_usr'])) { if($reg_on!=1) { exit('ERROR!'); } #Hasło if(empty($_POST['xu_p']) && LOGD==1) { $xu_pass=&$user[UID]['pass']; } else { if(!ereg('^[a-zA-Z0-9_-]{5,20}$',$_POST['xu_p']) || empty($_POST['xu_p'])) { $xerrtxt.=$lang['eperrp'].'<br /><br />'; $xu_OK=2; } if($_POST['xu_p']!=$_POST['xu_p2']) { $xerrtxt.=$lang['eperrp2'].'<br /><br />'; $xu_OK=2; } $xu_pass=md5($_POST['xu_p']); } #Login if(LOGD==2) { $xu_l=strtolower($_POST['xu_l']); $xu_l=TestForm($xu_l,1,1,1); if(empty($xu_l) || strlen($xu_l)>20 || strlen($xu_l)<3) { $xerrtxt.=$lang['eplerr'].'<br /><br />'; $xu_OK=2; } if(db_count('*','users',' WHERE login="'.db_esc($xu_l).'"')!=0) { $xerrtxt.=$lang['eploginex'].'<br /><br />'; $xu_OK=2; } } #E-mail if(!preg_match('/^[a-zA-Z0-9\._-]+@[a-zA-Z0-9\.-]+\.[a-zA- Z]{2,}$/',$_POST['xu_m'])) { $xerrtxt.=$lang['eperrm'].'<br /><br />'; $xu_OK=2; } if(LOGD==2) { if(db_count('*','users',' WHERE mail="'.db_esc($_POST['xu_m']).'"')!=0) { $xerrtxt.=$lang['epmailex'].'<br /><br />'; $xu_OK=2; } } #Inne if(strlen($_POST['xu_m'])>50) { exit; } if(strlen($_POST['xu_ab'])>255) { $xerrtxt.=$lang['eperrab'].'<br /><br />'; $xu_OK=2; } #Zapis if($xu_OK==2) { Info($xerrtxt); } else { $xu_ab=TestForm($_POST['xu_ab'],0,1,1); $xu_gg=((is_numeric($_POST['xu_gg']))?TestForm($_POST['xu_gg' ],0,1,1):''); $xu_icq=((is_numeric($_POST['xu_icq']))?TestForm($_POST['xu_icq' ],0,1,1):''); $xu_tl=TestForm($_POST['xu_tl'],1,1,1); $xu_ja=TestForm($_POST['xu_ja'],1,1,1); $xu_fr=TestForm($_POST['xu_fr'],1,1,1); if($_POST['xu_usr']=='n') { db_q('INSERT INTO '.$db_pre.'users VALUES ("","'.db_esc($xu_l).'","'.$xu_pass.'"," '.$_POST['xu_m'].'",'.$_POST['xu_vm'].' ,1,"'.db_esc($xu_ab).'",'.$_POST['xu_gm'].'," '.db_esc($xu_fr).'","'.$xu_icq.'","'.db_esc($xu_ja). '","'.db_esc($xu_tl).'","'.$xu_gg.'")',0); Info($lang['upregd'].'<br /><br />'.$lang['login'].': '.$xu_l.'<br />'.$lang['pass'].': '.$_POST['xu_p']); } elseif($_POST['xu_usr']===$user[UID]['ID']) { db_q('UPDATE '.$db_pre.'users SET pass="'.$xu_pass.'", mail="'.$_POST['xu_m'].'", mvis='.$_POST['xu_vm'].', about="'.db_esc($xu_ab).'", mails='.$_POST['xu_gm'].', city="'.db_esc($xu_fr).'", icq="'.$xu_icq.'", jabber="'.db_esc($xu_ja).'", tlen="'.db_esc($xu_tl).'", gg="'.$xu_gg.'" WHERE ID='.$user[UID]['ID'],0); Info($lang['upact']); } else { exit('ERROR!'); } } } Pozornie wygląda ok, zresztą wszystko wychodzi w "praniu" ^_^ hm... jeżeli pole nie ma zawierać HTMLa to strip_tags na niego Może się nie znam ale jeszcze nigdy nie widzialem tak zakreconych funkcji, lol. @Ferr~ Ty patrzac na to wiesz co ten kod robi ?? :D |
|||
Sitedesign by AltusUmbrae. |