2016-07-21 11 views
1

Ich versuche, eine Authentifizierung von implementieren.
Meine aktuelle Version funktioniert. Ist es jedoch eine schlechte Methode, das Kennwort unverschlüsselt zu senden, obwohl ich POST verwende?Senden von Passwörtern mit Ajax zu PHP

JavaScript:

$.ajax({ 
    type : "POST", 
    url : "script.php", 
    data : { 
     q : "login", 
     user: $("#user").val(), 
     pass: $("#pass").val() 
    }, 
    success : function(data) { 
     if(data){ 
      alert("VALID") 
     }else{ 
      alert("INVALID") 
     } 
    } 
}); 

PHP:

if ($_POST ["q"] == "login") { 
    $user = $_POST ["user"]; 
    $pass = $_POST ["pass"]; 

    $sql = "SELECT user, pass FROM users WHERE user='" . $user . "'"; 

    $stmt = sqlsrv_query ($conn, $sql); 
    if ($stmt === false) { 
     die (print_r (sqlsrv_errors(), true)); 
    } 

    $arr = array(); 
    $row = sqlsrv_fetch_array ($stmt); 
    $hash = $row ["pass"]; 

    if (password_verify ($pass, $hash)) { 
     die (true); 
     exit(); 
    } else { 
     die (false); 
     exit(); 
    } 

    sqlsrv_free_stmt ($stmt); 
    sqlsrv_close ($conn); 

    exit(); 
} 

Gibt es eine Best-Practice-Passwort von JS (Ajax) zu PHP für das Senden?

+4

erhalten, Sie sind nicht gegen SQL-Injektionen geschützt. – AntoineB

+2

Verwenden Sie https statt http, und dann wird es verschlüsselt –

Antwort

6

ist es eine schlechte Praxis betrachtet das Passwort unverschlüsselt

Ja, sehr schlecht zu senden.

Gibt es eine Best Practice für das Senden von Passwort von JS (Ajax) zu PHP?

Ob die Anforderung über eine Standardseitenladung oder eine Ajax-Anforderung erfolgt, ist irrelevant. Ob die Anfrage an PHP oder ein anderes System gestellt wird, ist irrelevant. Ob Sie GET oder POST verwenden, ist irrelevant. Wenn Sie Kennwörter senden, verwenden Sie immer HTTPS. Wenn die Kosten eines SSL-Zertifikats Sie davon abhalten, können Sie kostenlos unter letsencrypt.org