У меня есть веб-сайт, который требует от пользователя аутентификации с помощью имени пользователя и пароля. Я хотел бы использовать SSL, но у меня нет сертификата SSL. Но я делаю что-то еще, что я считаю нормальным.
Мой сайт в основном основан на AJAX и требует JavaScript, иначе ничего не будет работать.
Когда пользователь пытается войти в систему, я запрашиваю базу данных, используя AJAX, чтобы найти соль для этого имени пользователя, если ничего не найдено, возвращается случайная соль (чтобы люди не знали, есть ли пользователь с таким именем пользователя) или нет). Затем, используя функцию MD5 для JavaScript, я хеширую и солю пароль 4K раза (как в Linux, когда он использует MD5 для хеширования пароля) на стороне клиента, затем я передаю этот хеш серверу в виде простого текста. Затем этот хэш будет хеширован еще несколько раз и представлен для проверки того, что находится в базе данных.
Это безопасно? Если нет, то как я могу защитить его, не переплачивая наличными за сертификат SSL для в основном внутреннего веб-сайта?