2013-12-03 7 views
2

Я реализовал пример, приведенный в этой статье для одного из моих сайтов: http://www.wikihow.com/Create-a-Secure-Login-Script-in-PHP-and-MySQLхэширования пароля перед отправкой формы в IE9

Все было хорошо, пока пользователи IE9 не начали сообщать, что они не могли войти на сайт. Пользователи имеют Javascript, но я все еще не мог понять, почему это происходит. Те же пользователи могут входить в систему с помощью других браузеров, так что это не случай забытого пароля (что я очень подозревал!)

Функция formhash была написана точно так, как она появилась в статье (очень раздражающее копирование ее с изображение!)

function formhash(form, password) { 
    console.log("Hashing form"); 
    // Create a new element input, this will be our hashed password field. 
    var p = document.createElement("input"); 
    // Add the new element to our form. 
    form.appendChild(p); 
    p.name = "p"; 
    p.type = "hidden" 
    p.value = hex_sha512(password.value); 
    // Make sure the plaintext password doesn't get sent. 
    password.value = ""; 
    // Finally submit the form. 
    form.submit(); 
} 

ошибок не сообщается при подаче, так что это не кажется, ничего не поддерживается IE9. Итак, что происходит с этой функцией хеширования?

+0

Не о том, о чем вы спрашиваете, но если вас беспокоит отправка паролей по сети, почему бы не использовать SSL? – nnnnnn

ответ

2

Оказалось, что IE9 не любит изменения формы входа, как таковой, вы должны установить значение, прежде чем добавить элемент в DOM

function formhash(form, password) { 
    console.log("Hashing form"); 
    // Create a new element input, this will be our hashed password field. 
    var p = document.createElement("input"); 
    p.name = "p"; 
    p.type = "hidden" 
    p.value = hex_sha512(password.value); 

    // NOW, add the new element to our form. 
    form.appendChild(p); 

    // Make sure the plaintext password doesn't get sent. 
    password.value = ""; 
    // Finally submit the form. 
    form.submit(); 
} 

Кредита this poor soul, кто испытывает мою точную проблему

Смежные вопросы