我正在爲我的網站做一個簡單的登錄,我正在使用ajax與數據庫交互。我想使它有點安全,所以我尋找ajax的安全性,所以我搜索AJAX authentication
並在SO中閱讀關於這個問題。找到this和鏈接到this。不幸的是我真的不明白它的作用或工作原理。我希望有人會爲我澄清這一點。通俗的說法。beforeSend jquery ajax
$(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" />
上面這段代碼是我的代碼和附加的代碼,我從鏈接了。 以下是附加代碼。
beforeSend: function(xhr) {
xhr.setRequestHeader("Authorization", "Basic " + btoa(UserName + ":" + PassWord));
},
我想知道。
- ajax身份驗證是做什麼的。
- 我真的需要它。
- 我怎麼知道它在工作。
- 它真的做了什麼。
我明白了。我真的不明白beforeSend是如何通過閱讀這些鏈接工作的,因爲他們沒有解釋太多。我還有一個問題,例如我有更多的Ajax請求在我的網站(在短跑我有ajax請求)我如何確保讓他們安全?我的意思是更安全。我可以問另一個問題,但我可能會重複關於這個當前的問題,如果我發佈'。我也想感謝你解釋*我很瞭解它的工作原理*。 ***希望你可以建議一個更好的方法來使Ajax請求更安全*** – Martin
在1號答案你說'用戶/通道需要匹配那些被引用的.htpasswd文件,如果這將澄清我在數據庫中保存我的密碼。我是否需要將它保存在該文件中,如果我想要做這種安全性的話? – Martin
@Martin你會的。因爲這特別針對Apache使用的「基本授權」。這需要用戶名在虛擬主機聲明中引用的'.htpasswd'文件中。 – Ohgodwhy