我想要检查密码,检查javascript变量是用户编写的密码。我想检查它是否正确,我通过比较用户写的内容来存储实际值的php变量。
这不是一个安全的解决方案。我怎样才能改变它。我希望if语句和以前一样在同一个地方吗?
她是我的代码:
var password=$("#password").val();
if(password!='<?php echo "$password"; ?>'){
alert("No changes has been made due to wrong password.");
}
else{
$.ajax({
type: "POST",
url: "modify_profile.php",
data: {"firstname":firstname,"lastname":lastname},
success: function( data){
}
});
}
});
这是modify_profile.php。
<?php
require("../db/connect.php");
$email='test@gmail.com';
$written_password=( $_POST['firstname']);
if( isset($_POST['firstname']))
{
$firstname=( $_POST['firstname']);
$query=mysqli_query($dbcon, "UPDATE user SET first_name='$firstname' WHERE email='$email'");
$result = mysqli_query($dbcon,$query);
}
if( isset($_POST['lastname'])) {
$lastname=( $_POST['lastname']);
$query=mysqli_query($dbcon, "UPDATE user SET last_name='$lastname' WHERE email='$email'");
$result = mysqli_query($dbcon,$query);
}
require("../db/close.php")
?>
答案 0 :(得分:4)
您不能拥有该样式的if语句并且是安全的。安全性要求您不要存储密码。
为了安全起见,您必须:
即使不是这种情况,要求浏览器(由用户控制)检查密码是否正确将是不安全的,因为用户可以查看JavaScript并在else
直接声明。
您需要执行以下操作:
$.ajax({
type: "POST",
url: "modify_profile.php",
data: {"firstname":firstname,"lastname":lastname, password: password},
success: function( data){ }
})