Proszę, bo naczytałem się w internecie: zawsze addslashed i htmlspecialchars(), moża też spotkać coś takiego :
$email = htmlspecialchars(stripslashes(strip_tags(trim($_POST["email"]))), ENT_QUOTES); <- tworzenie takiego czegoś dla hasła kompletnie go zmieni.
Przeglądałem i zastanawiałem się nad moim kodem wiele razy, według mnie nie ma żadnej luki.Ale nie daje mi to spokoju.
if( $this->ajax ){ $email = $_POST['email']; $password = $_POST['password']; $recaptcha = $_POST['recaptcha']; $challenge = $_POST['challenge']; $recaptchaOK = false; require_once('phpClass/recaptcha.php'); $privatekey = '6Lfn8tsSAAAAALtc6Ny******************'; $resp = recaptcha_check_answer ($privatekey,$_SERVER["REMOTE_ADDR"],$challenge,$recaptcha); $recaptchaOK = ( $resp->is_valid ) ? true : false ; } $passwordOK = false; require_once('phpClass/phpass.php'); $hasher = new PasswordHash(8, TRUE); $password = $hasher->HashPassword($password); } $emailOK = false; $emailOK = ( preg_match('/^[0-9a-zA-Z_.-]+@[0-9a-zA-Z.-]+\.[a-zA-Z]{2,3}$/', $email) === 1 ) ? true : false ; $emailTaken = ( $emailTaken ) ? true : false ; } if( !$emailTaken && $emailOK && $passwordOK && $recaptchaOK ){ $sqlR = sql::qq('INSERT INTO `user` (`email`,`password`) VALUES (?,?)','ss',array($email,$password)); }else{ if( !$recaptchaOK ) $error['wrongRecaptcha']= $this->l('wrongRecaptcha'); if( $emailTaken ) $error['takenEmail']= $this->l('takenEmail'); if( !$emailOK ) $error['wrongEmail']= $this->l('wrongEmail'); if( !$passwordOK ) $error['wrongPassword']=$this->l('wrongPassword'); } }else{ error::NotAJAX(); }
/---------------------------------
przepraszm za dziwne tab'y. Ten edytor coś wyzmieniał mi dlatego jest nieczytelnie.