Yii Framework Forum: md5 шифрование пароля пользователя - Yii Framework Forum

Jump to content

  • (2 Pages)
  • +
  • 1
  • 2
  • You cannot start a new topic
  • You cannot reply to this topic

md5 шифрование пароля пользователя Rate Topic: -----

#1 User is offline   Rsol 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 122
  • Joined: 29-May 09
  • Location:Severodonetsk [UA]

Posted 29 May 2009 - 11:41 AM

Хочу реализовать шифрование пароля пользователя.

Делаю следующим образом:




login.php




Для начала не работает JavaScript в onsubmit. Далее .......

Не пойму в чем загвоздка.
+ Криво строка формируется.

Помогите, плз.
0

#2 User is offline   Zolter 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 377
  • Joined: 26-March 09

Posted 29 May 2009 - 12:51 PM

А чего не шифровать пароль на стороне сервера уже? зачем вам JS вообще?
0

#3 User is offline   Rsol 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 122
  • Joined: 29-May 09
  • Location:Severodonetsk [UA]

Posted 29 May 2009 - 02:07 PM

Quote

link=topic=2419.msg13260#msg13260 date=1243619496]

А чего не шифровать пароль на стороне сервера уже? зачем вам JS вообще?


На самом деле все достаточно просто и сделано это ради защиты от взлома без использования защищенных соединений.

Алгоритм:
1. при формировании формы на сервере формируется случайная переменная ($password2), сохраняется в сессии и передается в форму, когда пользователь вводит пароль (чтоб он небыл доступен для прослушивания) и нажимает отправить JS скрипт его шифрует md5 методом:

таким образом хакер даже увидев значение переменной не сможет ее подобрать (за счет той случайной переменной password2);

2. при проверке что делается:

если пришедшее значение password2 равно

значит все ок.

Надеюсь понятно изложил  :)
0

#4 User is offline   Zolter 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 377
  • Joined: 26-March 09

Posted 29 May 2009 - 02:27 PM

ssl рулит) долой велосипеды :)

А вобще по теме,
у тебя фаербаг стоит? если onsubmit не выполняеться значит смотри чем сыпит фаербаг в ошибках js
0

#5 User is offline   Rsol 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 122
  • Joined: 29-May 09
  • Location:Severodonetsk [UA]

Posted 29 May 2009 - 11:00 PM

Quote

link=topic=2419.msg13269#msg13269 date=1243625275]

ssl рулит) долой велосипеды :)



А вобще по теме,

у тебя фаербаг стоит? если onsubmit не выполняеться значит смотри чем сыпит фаербаг в ошибках js


Привет, друг!

Фаербаг стоит - обязательно. кричит LoginForm не определен.
Пришла мысль попробую сделать на jQuery.

по поводу ssl - как?
0

#6 User is offline   xomaa 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 82
  • Joined: 17-January 09

Posted 29 May 2009 - 11:42 PM

браузер и клиент обмениваются информацией по https - создавая защищенное соединение...подробнее вот здесь http://ru.wikipedia.org/wiki/SSL
0

#7 User is offline   Rsol 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 122
  • Joined: 29-May 09
  • Location:Severodonetsk [UA]

Posted 30 May 2009 - 12:53 AM

Я разобрался.

Переписываем:


И добавляем jQuery код в login.php


и ошибка закралась в SiteController


Но осталась непонятная проблема.
код:

выполняется, а Yii::app()->user->isGuest выдает true
0

#8 User is offline   Rsol 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 122
  • Joined: 29-May 09
  • Location:Severodonetsk [UA]

Posted 30 May 2009 - 01:11 AM

Quote

браузер и клиент обмениваются информацией по https - создавая защищенное соединение...подробнее вот здесь http://ru.wikipedia.org/wiki/SSL


Спасибо за информацию, но..... сколько с этим делом проблем.... В печьку!
JS форевер!
0

#9 User is offline   Rsol 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 122
  • Joined: 29-May 09
  • Location:Severodonetsk [UA]

Posted 30 May 2009 - 03:49 AM

Quote

Но осталась непонятная проблема.

код:



выполняется, а Yii::app()->user->isGuest выдает true


Теперь все работает!
а проблема была в том, что я закрывал сессию в UserIdentity

Всем спасибо!
Кому надо такое решение - обращайтесь - покажу и подскажу.
0

#10 User is offline   xomaa 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 82
  • Joined: 17-January 09

Posted 30 May 2009 - 02:10 PM

используя js, Вы выносите часть Вашей логики на сторону клиента....т.е. теоретически, злоумышленник знает алгоритм проверки пароля (после анализа js кода) - это не совсем гуд! ИМХО конечно!
0

#11 User is offline   Digital God 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 178
  • Joined: 30-January 09

Posted 30 May 2009 - 03:25 PM

Может я чего-то не понимаю, но накой черт генерить на сервере некий hash (password2), передавать его клиенту в js, там же делать шифрацию md5 и потом отправлять это на сервер и все сверять.. че за бредятина?

имхо не проще ли при регистрации юзеру присваивать некий salt (в буллетине это 3 случаных символа), далее в поле password в базе храниться md5(md5(password)+salt) и не делать никаких выносов логики на сторону клиента?
0

#12 User is offline   Rsol 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 122
  • Joined: 29-May 09
  • Location:Severodonetsk [UA]

Posted 30 May 2009 - 09:12 PM

Quote

используя js, Вы выносите часть Вашей логики на сторону клиента....т.е. теоретически, злоумышленник знает алгоритм проверки пароля (после анализа js кода) - это не совсем гуд! ИМХО конечно!


Даже зная алгоритм злоумышленник ловит каждый раз разный пароль password2. Т.е. пароль остается неизвестен. Что и требовалось.

Quote

Может я чего-то не понимаю, но накой черт генерить на сервере некий hash (password2), передавать его клиенту в js, там же делать шифрацию md5 и потом отправлять это на сервер и все сверять.. че за бредятина?


Тут вся соль в том, что пароль пользователя невозможно перехватить! Точнее перехватить можно, но этот пароль действительный только 1 раз.

Quote

имхо не проще ли при регистрации юзеру присваивать некий salt (в буллетине это 3 случаных символа), далее в поле password в базе храниться md5(md5(password)+salt) и не делать никаких выносов логики на сторону клиента?


И таким образом что мы получаем?
По открытому каналу идет информация о пароле. Злоумышленник перехватывает ее и знает, что надо отправить на входной скрипт, чтобы стать ... Васей, Петей, или еще кем-то (даже администратором).

Может я что-то не понимаю?
0

#13 User is offline   xomaa 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 82
  • Joined: 17-January 09

Posted 31 May 2009 - 12:45 PM

снова ИМХО! Вы наверное хотите сделать что - то типа этого (отрывок из документации):

Quote

To prevent CSRF attacks, it is important to abide to the rule that GET requests should only be allowed to retrieve data rather than modify any data on the server. And for POST requests, they should include some random value which can be recognized by the server to ensure the form is submitted from and the result is sent back to the same origin.



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 для этого явно не нужен!
0

#14 User is offline   Digital God 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 178
  • Joined: 30-January 09

Posted 01 June 2009 - 12:02 AM

xomaa, не, он не это хочет сделать.... суть его махинаций с md5 шифрованием в js я понял.. но все равно тут стоит сказать одну вещь - захотят, сломают и такой алгоритм.
0

#15 User is offline   Zolter 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 377
  • Joined: 26-March 09

Posted 01 June 2009 - 01:42 AM

та это не какой не алгоритм. это фича :)
0

#16 User is offline   Digital God 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 178
  • Joined: 30-January 09

Posted 01 June 2009 - 04:30 AM

Алгоритм, фича.. называй как хочешь))
Хотите чтобы пароль не свистнули в момент передачи - юзайти ssl протокол)) а извращаться и вытаскивать в js md5 - имхо не лучший  вариант
0

#17 User is offline   xomaa 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 82
  • Joined: 17-January 09

Posted 01 June 2009 - 04:35 AM

Quote

Алгоритм, фича.. называй как хочешь))

Хотите чтобы пароль не свистнули в момент передачи - юзайти ssl протокол)) а извращаться и вытаскивать в js md5 - имхо не лучший  вариант

Согласен!
0

#18 User is offline   Rsol 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 122
  • Joined: 29-May 09
  • Location:Severodonetsk [UA]

Posted 01 June 2009 - 11:44 AM

Quote

Quote

Алгоритм, фича.. называй как хочешь))

Хотите чтобы пароль не свистнули в момент передачи - юзайти ssl протокол)) а извращаться и вытаскивать в js md5 - имхо не лучший  вариант


Согласен!


Спорить не буду, но в этом случае защита лучше чем никакой, а взлом возможен с использованием CSRF (спасибо xomaa), но тут уже на помощь приходит капча.
0

#19 User is offline   Digital God 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 178
  • Joined: 30-January 09

Posted 01 June 2009 - 12:14 PM

Rsol, тогда по пунктам:
1. если ты хочешь сделать защиту форм, то тут xomaa прав, юзай csrf защиту в yii
2. если ты хочешь защитить пароль юзера от перехвата (хотя такое думаю редко кто будет делать, разве что админ на роутере или злобный троян на его компе), то имхо лучше сделать ssl протокол.
3. md5 шифрация на стороне клиента, думаю это последний вариант, так как не есть "красивое программирование"
0

#20 User is offline   Rsol 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 122
  • Joined: 29-May 09
  • Location:Severodonetsk [UA]

Posted 01 June 2009 - 01:39 PM

Quote

Rsol, тогда по пунктам:

1. если ты хочешь сделать защиту форм, то тут xomaa прав, юзай csrf защиту в yii

2. если ты хочешь защитить пароль юзера от перехвата (хотя такое думаю редко кто будет делать, разве что админ на роутере или злобный троян на его компе), то имхо лучше сделать ssl протокол.

3. md5 шифрация на стороне клиента, думаю это последний вариант, так как не есть "красивое программирование"


Digital God, наверное ты прав, но не могу себя пересилить и разобраться с ssl. Плюс надо сертификат покопать...
0

Share this topic:


  • (2 Pages)
  • +
  • 1
  • 2
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users