|
|
|
| Недавно похачили мой сайт. Причём пароли пользователей выудили довольно-таки примитивным способом — добавили в JS-файл, отвечающий за первичную проверку аутентификационных данных, код, который при нажатии на кнопку логина сливает данные из формы аяксом на левый сайт.
Потом громко о себе заявили на форуме проекта, последовал шантаж и всё в таком духе. Пользователи стали обвинять меня в том, что в базе пароли хранятся в открытом виде, хотя в действительности хранится хеш от пароля, подсоленный постоянной солью сайта и индивидуальной солью пользователя.
Родилась идея предварительно шифровать вводимые символы пароля алгоритмом RSA по мере ввода с клавиатуры. Например таким способом: http://www.ohdave.com/rsa/
То есть нажал пользователь кнопку и эта буква автоматом зашифровалась открытым ключом, а в поле password попала заглушка (всё равно отображаются звёздочки).
У данного способа защиты есть несколько огромных дыр, которые, я надеюсь, можно обойти.
Одна из них — возможно ли повесить на все клавиатурные события только один обработчик и заблокировать возможность его переопределить или навесить ещё дополнительных?
И вообще, существует ли возможность надёжной защиты пароля пользователя средствами JS при передаче его на сервер во время аутентификации в случае взлома, описанном выше? | |
|
|
|
|
|
|
|
для: Саня
(24.09.2012 в 19:52)
| | Гм, я бы прежде озадачился мыслью о собственном пароле админа, в котором наверняка "есть несколько огромных дыр, которые, я надеюсь, можно обойти". Иначе каким образом в ваш код посторонние "добавили в JS-файл, отвечающий за..."? | |
|
|
|
|
|
|
|
для: Deed
(25.09.2012 в 08:28)
| | Об этом я уже позаботился.
Есть конструктивные предложения по исходному вопросу? | |
|
|
|
|
|
|
|
для: Саня
(25.09.2012 в 10:27)
| | Неужели JS можно рассматривать в качестве инструмента защиты да еще надежной? | |
|
|
|
|
|
|
|
для: Саня
(24.09.2012 в 19:52)
| | так вся проблема в том что они доступ получили к твоему файлу и смогли его модифицировать. если это повторится - они опять смогут все перехватить | |
|
|
|