我想使用ajax(使用jquery)在我的网站上创建动态登录。 现在一切都完成了,一切都运作良好。 我的问题是,我不知道,如果一切都安全(足够)使用它,就像它现在一样。
我的ajax脚本:
//LOGIN
$(function(){
var mail;
var password;
$("body").on("click", ".sign-in", function(event){
mail = $('#login-mail').val();
password = $('#login-password').val();
//ajax
$.ajax({
type: "POST",
async: true,
url: '/index.php',
data: { 'mail': mail,'password': password},
success: function (msg)
{
if($(msg).filter('.logged-in').html() == 'success'){
window.location.replace('/timeline.php')
}else{
$('input').css('border','0.1rem solid #EB5757');
$('.login-failed').html('Falsche E-Mail oder / und Passwort !');
}
},
error: function (err)
{ alert(err.responseText)}
});
});
});
这背后的逻辑: Ajax发送用户并传递给PhP页面:
if(isset($_POST["mail"]) && isset($_POST["password"])){
//$mU->hashPassword($_POST['password']);
if($mU->loginUser($_POST["mail"],$_POST["password"]) == true)
echo '<div class="logged-in">success</div>';
}
$mU->loginUser($_POST["mail"],$_POST["password"]) == true
如果属实,一切都很好。然后脚本&#34; echos&#34;成功。
在我的ajax成功函数中,jquery检查div的内容。
我希望你知道我的意思,因为很难解释我的问题&#34;。 我的脚本安全吗?我能做得更好(安全)?
答案 0 :(得分:0)
好吧,如果我用/timeline.php替换登录网址最后一段(例如/login.php),这会显示你的“登录保护”时间线,你的脚本就不安全了。通常,某些会话变量(在成功验证期间设置)确定页面是否可访问。
答案 1 :(得分:0)
是的,它是安全的,你正在使用你的PHP作为api。你可以从javascript传递密钥,使其更安全,并保护csrf。