我正在为我的网站进行简单的登录,我正在使用ajax与数据库进行交互。我想让它有点安全,所以我搜索ajax的安全性,所以我搜索AJAX authentication
并在SO中读到这个问题。找到this并链接到this。不幸的是,我真的不明白它的作用或工作原理。我希望有人能为我澄清一下。在外行的任期内。
$(document).on('click', '#login', function() {
var UserName = $('#username').val();
var PassWord = $('#password').val();
console.log(UserName);
if (UserName) {
if (PassWord) {
$.ajax({
type: 'POST',
url: 'ajax/Login.php',
dataType: "json",
data: {
username: UserName,
password: PassWord
},
beforeSend: function(xhr) {
xhr.setRequestHeader("Authorization", "Basic " + btoa(UserName + ":" + PassWord));
},
success: function(data) {
if (data.error == true) {
$("#dialog").html(data.message);
$("#dialog").dialog({
title: "Login"
});
$("#dialog").dialog("open");
} else {
window.location = 'pages/dashboard.php';
}
//window.location = 'pages/dashboard.php';
},
error: function(data) {
alert('Login Error');
//window.location='../login.php';
}
});
} else {
$("#dialog").html("Password is empty!");
$("#dialog").dialog({
title: "Owner Information"
});
$("#dialog").dialog("open");
}
} else {
$("#dialog").html("Username is empty!");
$("#dialog").dialog({
title: "Login"
});
$("#dialog").dialog("open");
}
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type="text" name="un" id="username" />
<input type="password" name="pw" id="password" />
<input type="button" id="login" value="Login " name="login1" style="background-color:#feaa38;width: 100px" />
&#13;
上面的代码是我的代码加上我从链接中获得的附加代码。 以下是附加代码。
beforeSend: function(xhr) {
xhr.setRequestHeader("Authorization", "Basic " + btoa(UserName + ":" + PassWord));
},
我想知道。
答案 0 :(得分:1)
请不要在这里抓到Ajax。这只是利用&#34; Basic&#34; Apache
提供的身份验证。 user / pass需要与引用的.htpasswd文件中的那些匹配。 Apache将拦截请求,然后在验证后将请求重新路由到原始目的地,并且已经为您存储了授权会话。
这看起来有点矫枉过正。您正在发送用户名和密码以对所有未来的服务器请求进行身份验证(可能),而不仅仅是登录您的软件。在一个地方控制用户似乎有点多,而不是一个。
如果您以一种查看网站需要密码和用户名的方式保护您的网页,那么这将确保每个请求都必须遵循此要求。但是,一旦他们重新登录,就无法执行此操作。
这可以通过1-3解释。
这看起来有点矫枉过正,我认为它不再增加安全性。一旦有人知道一个密码,他们就知道了。放弃它。