1
我正在嘗試實現身份驗證。
我目前的版本有效。但是,儘管我正在使用POST,但是發送未加密密碼是一種不好的做法嗎?發送帶有Ajax的密碼到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();
}
是否有從JS(阿賈克斯)發送密碼PHP的最佳做法?
請注意,您不受SQL注入的保護。 – AntoineB
使用https而不是http,然後它會被加密 –