Хочу реализовать шифрование пароля пользователя.
Делаю следующим образом:
login.php
Для начала не работает JavaScript в onsubmit. Далее …
Не пойму в чем загвоздка.
- Криво строка формируется.
Помогите, плз.
Хочу реализовать шифрование пароля пользователя.
Делаю следующим образом:
login.php
Для начала не работает JavaScript в onsubmit. Далее …
Не пойму в чем загвоздка.
Помогите, плз.
А чего не шифровать пароль на стороне сервера уже? зачем вам JS вообще?
Quote
А чего не шифровать пароль на стороне сервера уже? зачем вам JS вообще?
На самом деле все достаточно просто и сделано это ради защиты от взлома без использования защищенных соединений.
Алгоритм:
таким образом хакер даже увидев значение переменной не сможет ее подобрать (за счет той случайной переменной password2);
если пришедшее значение password2 равно
значит все ок.
Надеюсь понятно изложил
ssl рулит) долой велосипеды
А вобще по теме,
у тебя фаербаг стоит? если onsubmit не выполняеться значит смотри чем сыпит фаербаг в ошибках js
Quote
ssl рулит) долой велосипеды
А вобще по теме,
у тебя фаербаг стоит? если onsubmit не выполняеться значит смотри чем сыпит фаербаг в ошибках js
Привет, друг!
Фаербаг стоит - обязательно. кричит LoginForm не определен.
Пришла мысль попробую сделать на jQuery.
по поводу ssl - как?
браузер и клиент обмениваются информацией по https - создавая защищенное соединение…подробнее вот здесь http://ru.wikipedia.org/wiki/SSL
Я разобрался.
Переписываем:
И добавляем jQuery код в login.php
и ошибка закралась в SiteController
Но осталась непонятная проблема.
код:
выполняется, а Yii::app()->user->isGuest выдает true
Quote
Спасибо за информацию, но… сколько с этим делом проблем… В печьку!
JS форевер!
Quote
код:
выполняется, а Yii::app()->user->isGuest выдает true
Теперь все работает!
а проблема была в том, что я закрывал сессию в UserIdentity
Всем спасибо!
Кому надо такое решение - обращайтесь - покажу и подскажу.
используя js, Вы выносите часть Вашей логики на сторону клиента…т.е. теоретически, злоумышленник знает алгоритм проверки пароля (после анализа js кода) - это не совсем гуд! ИМХО конечно!
Может я чего-то не понимаю, но накой черт генерить на сервере некий hash (password2), передавать его клиенту в js, там же делать шифрацию md5 и потом отправлять это на сервер и все сверять… че за бредятина?
имхо не проще ли при регистрации юзеру присваивать некий salt (в буллетине это 3 случаных символа), далее в поле password в базе храниться md5(md5(password)+salt) и не делать никаких выносов логики на сторону клиента?
Quote
Даже зная алгоритм злоумышленник ловит каждый раз разный пароль password2. Т.е. пароль остается неизвестен. Что и требовалось.
Quote
Тут вся соль в том, что пароль пользователя невозможно перехватить! Точнее перехватить можно, но этот пароль действительный только 1 раз.
Quote
И таким образом что мы получаем?
По открытому каналу идет информация о пароле. Злоумышленник перехватывает ее и знает, что надо отправить на входной скрипт, чтобы стать … Васей, Петей, или еще кем-то (даже администратором).
Может я что-то не понимаю?
снова ИМХО! Вы наверное хотите сделать что - то типа этого (отрывок из документации):
Quote
Yii implements a CSRF prevention scheme to help defeat POST-based attacks. It is based on storing a random value in a cookie and comparing this value with the value submitted via the POST request.
By default, the CSRF prevention is disabled. To enable it, configure the CHttpRequest application component in the application configuration as follows,
And to display a form, call CHtml::form instead of writing the HTML form tag directly. The CHtml::form method will embed the necessary random value in a hidden field so that it can be submitted for CSRF validation.
Но js для этого явно не нужен!
xomaa, не, он не это хочет сделать… суть его махинаций с md5 шифрованием в js я понял… но все равно тут стоит сказать одну вещь - захотят, сломают и такой алгоритм.
та это не какой не алгоритм. это фича
Алгоритм, фича… называй как хочешь))
Хотите чтобы пароль не свистнули в момент передачи - юзайти ssl протокол)) а извращаться и вытаскивать в js md5 - имхо не лучший вариант
Quote
Хотите чтобы пароль не свистнули в момент передачи - юзайти ssl протокол)) а извращаться и вытаскивать в js md5 - имхо не лучший вариант
Согласен!
Quote
Quote
Хотите чтобы пароль не свистнули в момент передачи - юзайти ssl протокол)) а извращаться и вытаскивать в js md5 - имхо не лучший вариант
Согласен!
Спорить не буду, но в этом случае защита лучше чем никакой, а взлом возможен с использованием CSRF (спасибо xomaa), но тут уже на помощь приходит капча.
Rsol, тогда по пунктам:
если ты хочешь сделать защиту форм, то тут xomaa прав, юзай csrf защиту в yii
если ты хочешь защитить пароль юзера от перехвата (хотя такое думаю редко кто будет делать, разве что админ на роутере или злобный троян на его компе), то имхо лучше сделать ssl протокол.
md5 шифрация на стороне клиента, думаю это последний вариант, так как не есть "красивое программирование"
Quote
если ты хочешь сделать защиту форм, то тут xomaa прав, юзай csrf защиту в yii
если ты хочешь защитить пароль юзера от перехвата (хотя такое думаю редко кто будет делать, разве что админ на роутере или злобный троян на его компе), то имхо лучше сделать ssl протокол.
md5 шифрация на стороне клиента, думаю это последний вариант, так как не есть "красивое программирование"
Digital God, наверное ты прав, но не могу себя пересилить и разобраться с ssl. Плюс надо сертификат покопать…