簡體   English   中英

使用AJAX發送密碼時如何保護密碼?

[英]How to secure the password while it being sent using AJAX?

我試圖確保用戶密碼的安全,但是我注意到在提交表單時發送的標頭信息對所有人都是可見的。 它是安全的還是有辦法使其保持安全? 我知道如何在JS的密碼中添加md5,但是MD5不再安全,我也無法在JS中添加鹽,因為每個人都可以找出鹽是什么。 那你建議做什么? 我認為很快我將在我的網站(https://)上使用SSL, 但是我不確定 ,因此我需要另一種方法來確保通訊安全。 即使我有一個SSL,它也來自HostGator的商業計划,而且如果我沒記錯的話, SSL在移動設備上也不起作用 (表格使用AJAX通過郵寄發送)。

AJAX無關緊要。

保護您的登錄頁面的唯一方法是使用SSL或TLS,在現代移動瀏覽器上可以正常使用。

我還認為HTTPS已在大多數移動瀏覽器中提供。 但是,如果您確定情況並非如此,則可以考慮使用公共密鑰加密js庫。 pidCrypt浮現在腦海。 但是, 只有在確實有必要的情況下,我認為在大多數情況下這還是過大了。

您可以從此處下載http://pajhome.org.uk/crypt/md5/sha512.html sha512.js,然后聲明如下函數:

function formhash(form, password)
{
    $(form).append('<input name="p" type="hidden" >');
    var p = $('input[name="p"]');
    p.val(hex_sha512(password.val()));
    password.val('');

    return p.val();
}

因此,之后您可以使用ajax將數據發送到服務器,例如:

var dataObj = {
    'username': $('input[name="username"]').val(),
    'password': formhash($('.form-signin'), $('input[name="password"]'))
}; 

並且您的密碼將已經加密發送。 當然,您也應該在登錄表單頁面上使用https。

移動應用程序和瀏覽器支持SSL-這不是您的問題。 如果您的主機不支持SSL,則需要將其關閉。

客戶端加密不會為您提供任何額外的安全性。 它可能為您提供額外的安全性。

所有可用於從客戶端獲取密碼的攻擊也可用於從客戶端獲取散列或加密的密碼-您的系統將使用該值,但不知道不是由用戶瀏覽器生成的。 因此,客戶端加密不會為您的站點提供任何其他安全性。

如果您要保護用戶,則觀點會有所不同。 通過使用客戶端加密,您可以提出您永遠都不知道用戶密碼的論點,從而在系統受到破壞時保護用戶。 您的系統仍然會受到威脅,但是使用該密碼的所有其他系統都不會受到威脅。

對於身份驗證機制,您需要傳輸層安全性,幾乎沒有辦法解決它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM