Я использую технику шифрования в форме входа пользователя, чтобы не передавать пароли в виде простого текста. Я сохраняю уникальное значение запроса в сеансе PHP, включаю это же значение в скрытое поле формы HTML, а затем использую скрипт SHA1-1 на основе JavaScript для хеширования пароля перед его отправкой. (Затем он сравнивается с тем же на стороне сервера, используя вызов, сохраненный в переменной сеанса).
У меня нет проблем с самим вышесказанным, но я подумал, что лучше всего объяснить, почему я должен это делать.
Я отправляю форму следующим образом:
var password = sha1(document.forms['loginform'].password.value);
password = sha1(document.forms['loginform'].challenge.value + password);
document.forms['loginform'].challenge.value = '';
document.forms['loginform'].password.value = password;
document.forms['loginform'].style.display = 'none';
document.forms['loginform'].submit();
Проблема в 5-й строке. Я хотел бы скрыть зашифрованное значение пароля из поля зрения, потому что если я этого не сделаю, у меня будут люди, говорящие «это был не мой пароль», «мне это не нравится» и т. Д.
Дело в том, что установка display на 'none' перед отправкой, похоже, приводит к сбою Internet Explorer 9 с таким сообщением:
Problem Event Name: APPCRASH
Application Name: iexplore.exe
Application Version: 9.0.8112.16421
Fault Module Name: MSHTML.dll
Итак, мне было интересно, есть ли у кого-нибудь лучший способ сделать это. То есть, есть хороший или «нормальный» способ скрыть обновленное значение JavaScript в форме перед отправкой?
Спасибо
Edit:
Сейчас я устанавливаю цвет текста поля пароля, чтобы он соответствовал фону. Это немного взломать. Я не хочу отмечать ответ ниже - я не совсем согласен, и это немного похоже на мой собственный вопрос. (Я буду, а не оставлять это открытым навсегда:). Это не большая проблема. Я оставлю это немного.