Di nulla.
Comunque hai molte falle di sicurezza.
Di nulla.
Comunque hai molte falle di sicurezza.
Ridatemi i miei 1000 posts persi !!!!
Non serve a nulla ottimizzare qualcosa che non funziona.
Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr
è comunque un sito di prova , se sfondano mi frega poco...queste pagine mi servono per imparare con il php e far pratica...sono un novellino ancora...alcune parti di codice li scrivo io seguendo varie guide e suggerimenti sparsi di qua e la, alcune parti le prendo in giro dal web...insomma non è tutta farina del mio sacco...comunque per la registrazione cripto la password in questo modo:
c'è un modo per richiamare sta funzione di criptaggio nel file new_password per il reset della password?Codice PHP:/*******************************
METODO PER CRIPTARE LE PASSWORD
*******************************/
public function crypt_pass($pass){
return sha1($pass);
}
/*****************************
ESECUZIONE DELLA REGISTRAZIONE
******************************/
public function esegui_registrazione(){
// se il form e i suoi input sono stati inviati
if(isset($_POST['register']) AND
isset($_POST['username']) AND
isset($_POST['email']) AND
isset($_POST['pass1']) AND
isset($_POST['pass2'])){
//valorizziamo alcune variabili
$this->reg_username = trim($_POST['username']);
$this->reg_email = trim($_POST['email']);
$this->reg_pass = trim($_POST['pass1']);
$this->reg_confirm_pass = trim($_POST['pass2']);
// criptiamo la password
$this->reg_crypt_pass = $this->crypt_pass($this->reg_pass);
// eseguiamo la validazione degli input
$valid_input = $this->check_input_registrazione();
// se sono validi
if($valid_input===TRUE){
// inseriemo all'interno del database i dati
$this->query_insert_registrazione();
// settiamo il messaggio di successo della registrazione
$this->message_script = 10;
return TRUE;
}
}
return FALSE;
}
come non ho detto ho modificato :
inCodice PHP:$pass1 = $_POST['pass1'];
$pass2 = $_POST['pass2'];
if ($pass1 == "" || $pass2 == "")
echo "Non lasciare campi vuoti";
elseif ($pass1 != $pass2)
echo "Le password devono coincidere";
else{
ho risolto da solo, grazie comunque si può chiudereCodice PHP:$pass1 =sha1($_POST['pass1']);
$pass2 =sha1($_POST['pass2']);
if ($pass1 == "" || $pass2 == "")
echo "Non lasciare campi vuoti";
elseif ($pass1 != $pass2)
echo "Le password devono coincidere";
else{
![]()
Certe falle sono nel trattare le query ma ce ne sono tante altre. Sei un novellino ma bisogna anche porsi le domande giuste. Perché da novellino quando le tue pagine funzioneranno penserai che funzionano. La domanda principale è... Come faccio per controllare che tutti i dati che registro siano puliti e Giusti ? Per esempio non controlli che la mail immessa sia valida.
Per la parte query. Non fai alcun controllo sui dati trasmessi.
Qui c'è una parte di un tuo script modificata per la comprensione.
Codice PHP:<?php
$hash=$_GET['hash'];
$id=substr($hash, 32);
$password_old=substr($hash, 0, 32);
//controllo che i valori dell’hash corrispondano ai valori salvati nel database
$query = "SELECT * FROM users WHERE id=".$id." AND pass='".$password_old."'";
print $query;
Se passo : http://sitoprova.96.lt/nuova_passwor...C11FF1Z7102112
Il codice della query =
codice:SELECT * FROM users WHERE id=102112 AND pass='1251SDD118D44F18E88E777FC11FF1Z7'
Se passo : http://sitoprova.96.lt/nuova_password.php?hash=' or 1=1 or ' ' = ' 10
Il codice della query =
Basta che ci sia un id = 10 e ti cambio la password.codice:SELECT * FROM users WHERE id=10 AND pass='' or 1=1 or ' ' = ' '
Ultima modifica di badaze; 26-02-2017 a 11:26
Ridatemi i miei 1000 posts persi !!!!
Non serve a nulla ottimizzare qualcosa che non funziona.
Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr