Diğerleri de söylediğim gibi, bir formdan bir HTTP post gönderme daha fazla güvenlidir. (Aslında, aynı şey.)
HTTPs bir seçenek değil ama eğer her zaman şifresiz bir bağlantı üzerinden bir sınama / yanıt şemasını kullanabilirsiniz.
Temelde bu gibi çalışır:
Server has a SHA (or whatever hashing algorithm you prefer) hash of the user's password.
Client has the password.
Client requests (using unencrypted AJAX) the server send a challenge (Some random string of bytes. Characters are fine.)
Server creates a challenge and a challenge id and saves it with an expiration.
Client recieves a challenge and a challenge id.
Client hashes the password using SHA.
Client hashes the resulting hash with the challenge appended in some way.
Client sends the challenge id (Not the challenge itself) and the second resulting hash.
Server looks up challenge using ID if it exists and hasn't expired.
Server appends the challenge to the stored password hash and creates a hash using the same scheme as the client.
Server compares it's hash with the client if it's the same the user is authenticated.
Bu fikir olsun kez kurmak için aslında oldukça basit. Wikipedia üzerine bazı ek bilgiler var.
EDIT: Ben kimlik doğrulaması must olursa olsun meydan silmek başarılı olup olmadığını, söylemeyi unutmuşum fark ettim. Bir meydan istemci birden girişimleri verilmesi güvenlik sorunları neden olabilir.