[PHP] login con password_verify

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
Secondo voi va bene fatto cosi ?. ho protezione dagli attacchi ?. Essendo che nella fase di registrazione uso:

$hash = password_hash($password, PASSWORD_DEFAULT);

Grazie mille e aspetto informazioni ecco il codice:

PHP:
<?php
include($_SERVER['DOCUMENT_ROOT'].'inc.php');

$message = 'Login ??';
if(isset($_POST["login"]))
{
    if (empty($_POST['username']) && empty($_POST['password']))
    {
          $message = "inserire username e password";
    }else {

    $records = dbConnect()->prepare('SELECT * FROM users WHERE username = :username');
    $records->bindParam(':username', $_POST['username']);
    $records->execute();
    $results = $records->fetch(PDO::FETCH_ASSOC);

    $message = '';

    if($records->rowCount() > 0 && password_verify($_POST['password'], $results['password']) ){

    session_start();

    $_SESSION['id'] = $results['id'];
    $_SESSION['username'] = $results['username'];
    header("Location: home.php");

    } else {
    $message = 'Sorry, password or username not found';
}
}
}
?>
<?php echo $message; ?>
<h1>Login</h1>
<form method="POST">
  <input type="text" name="username"><br />
  <input type="password" name="password"><br />
  <input type="submit" name="login">
</form>
 

maxnegri

Utente Attivo
12 Ott 2004
87
0
6
Ciao io utilizzerei
PHP:
 mysqli_real_escape_string
che pulisce la stringa da eventuale codice malevole.
PHP:
$username = $_POST["username"];
$username = mysqli_real_escape_string($conn,$username);
 

Flaviors200

Nuovo Utente
2 Gen 2019
7
0
1
Hai fatto benissimo!

In PHP per salvare gli hash delle password bisogna usare password_hash(), che di default utilizza bcrypt come funzione di hash. L'alternativa ottimale sarebbe Argon2, ma con bcrypt si è già al sicuro da attacchi di brute force.

Se vuoi approfondire ne ho parlato nel mio blog in un articolo dedicato a come salvare in maniera sicura le password in PHP.

Ciao io utilizzerei
PHP:
 mysqli_real_escape_string
che pulisce la stringa da eventuale codice malevole.
PHP:
$username = $_POST["username"];
$username = mysqli_real_escape_string($conn,$username);

Utilizza già PDO e i prepared statement, non ha bisogno di mysqli :)
 

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
infatti non uso mysqli perché ho letto in giro in inglese .. che la vorrebbero togliere anche quella ed usare solo pdo.
ti ringrazio molto e mi leggo il tuo blog.
grazie mille.
 
Discussioni simili
Autore Titolo Forum Risposte Data
L [PHP] login con varie entrate PHP 3
L [PHP] login con password_verify - password_hash PHP 5
M [PHP] Problemi con il riconoscimento login. PHP 21
F Problema con pagine login in PHP PHP 2
M [PHP] Problemi con login facebook PHP 0
L [PHP] login e protezione pagine con session PHP 3
L [PHP] login con la classe medoo.in PHP 5
I [PHP] login con sessione singola PHP 1
D [PHP] Login Multiutente con pagina privata PHP 5
S [PHP] Problemi con Login e pagina Utente PHP 5
webmachine [PHP] Problemi con Login e pagina Utente PHP 3
F Problemi login con lo script php PHP 2
M Script php login con password in scadeza ogni tre mesi PHP 2
D aiuto con pag di login in php PHP 1
M Login con php PHP 2
E [PHP + MySql] Sito con login e sessioni PHP 8
L [PHP/MYSQL] Login con ricordo utente PHP 1
I [PHP]Problema sito con form login in ogni pagina PHP 7
S [PHP] Stampa a video Nome e Cognome in seguito a login PHP 1
M [PHP] header (location..) non funzionante dopo login PHP 3
L [PHP] Visualizzare utente dopo login PHP 0
F [PHP] Login senza database PHP 3
F [php] sicurezza password form login PHP 2
M [PHP] Metodo migliore per fare login a un DB Mysql PHP 1
Y [PHP] Errore di login dopo aver inserito Codice AdSense PHP 0
W [PHP] Login sicuro al web Service SOAP PHP 20
P [PHP] Limitare login ad un solo utente per volta PHP 12
I [PHP] [Javascript] login da smartphone a web PHP 3
P [PHP] Reindirizzamento post Login PHP 3
bubino8 [WordPress] [PHP] Login diretto da bottone WordPress 4
D problemi login php 5.6 mysql PHP 1
I [PHP] Login Facebook SDK returned an error: No URL set! PHP 0
G PHP Login PHP 1
Laskot Login php e redirect PHP 1
K [PHP] Unica sessione login forum/sito PHP 1
bubino8 [PHP] Login Automatico PHP 1
M [PHP] Sessione Login PHP 15
C [PHP] Aprire la pagina dopo aver fatto il login PHP 1
fabry1986 [PHP] login PHP 2
Punix pagine login-logout php principiante PHP 4
ANDREA20 [PHP] Echo login PHP 2
P [PHP] aiuto creazione login PHP 16
M login.php PHP 12
otto9due [risolto] Problema sessioni php e login PHP 5
D creazione di una login in php PHP 1
M Pagina di registrazione e login in php PHP 4
C Creare Login php PHP 0
D Pagina login php-mysql PHP 1
helpdesk Nessuna session start in login PHP PHP 12
max_400 il login in php è sicuro? PHP 14

Discussioni simili