Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Создание профиля (http://www.flasher.ru/forum/showthread.php?t=109863)

Diamand 22.03.2008 01:15

Создание профиля
 
Приветствую всех!
Приношу извинения если оная тема поднималась - не нашел. При наличии таковой - прошу указать ее.

Дело вот в чем:
Подскажите как сделать профиль во флеше. Т.е. зарегестрироваться (создать данные при этом о себе), а в последствии входить в мувик вводя логин и пароль и продолжать с сахраннеными данными что были при регистрации. Если я как то не так выразился, утачните пожалуста. Распишу подробнее. Это очень нужно и от этого зависит как дальше будет развиваться проект. Сами понимаете.
Да проект не ком. а для себя. Просто надоело без сайта сидеть.

К томуж я занимаюсь аэрографией, и кто согласится помочь чистично в работе, отблагодарю холявным рисунком. ( только не на авто, дороговато...) :)

P.S. Просьба ответить знающим людям и конкретно, а то как я помню тут хватает советчиков не по делу.

BlooDHounD 22.03.2008 01:52

стану одним из тех, кто горит не по делу. начните с азов программирования: купите пару учебников, почитайте хелпы ...

или напишите это всё в раздел "работа".

Diamand 22.03.2008 02:10

Я не плохо разбираюсь во флеше и програмировании... но всего не охватишь, и по симу начинаешь разбирать непосредственно при столкновении с проблемой. И это к работе не относится, а всего лишь как вариант - приписка.
Мне вполне достаточно будет разъяснения что к чему или примерка.

BlooDHounD 22.03.2008 02:28

ну я вот, например, не понимаю сути вопроса. я лиш понимаю, что либо Вы не умеете изъясняться, либо понятия не имеете о чём пишите.

Diamand 22.03.2008 02:39

))) наверное первое)
Я же с неодушевленными предметами работаю... а для изьяснений у меня менегер есть)))
Вобщем так: - Вы заходите на сайт, регестрируетесь (вводите о себе данные - постандарту, выбираете аватар) все, вы зарегены. По сайту блуждаете наблюдая свои данные оставленные при регистрации, к примеру в отдельном окне. Вышли с сайта - мувик кердык... когда заходите опять, то введя свой логин и пароль начинаете опять гулять и прочее и в окошечке видны ваши данные оставленные при регистрации. К примеру тот же аватар. Воть.
Еще подробнее?

Mr. Fixit 22.03.2008 03:01

понятно было и из поста #1..
ну тебе надо разработать серверную часть(бэкенд) и клиентскую(фронтенд), тоесть сам флеш...

Ну заполняем поля регистрации, потом отсылаем данные на сервер..
и за этими данными закрепляется определенное место. Где мы имеем к профилю доступ через занятый логин или адресс почты, и пароль.

В перспективе сложного не вижу :)

Diamand 22.03.2008 04:22

объяснили ))

WindWalker 22.03.2008 10:27

Вариант номер раз - используем обычные куки (cookie).
После логина, сервер сообщает браузеру, что надо установить cookie, которые содержат логин/пароль в зашифрованном виде (об шифровании позже).
В следующий раз браузер сам отправит серверу куки и сервер, обработав их, автоматически залогинит.
В этом варианте на флеше или вообще ничего делать не надо, или надо по минимуму. В основном тут будут задействованы сервер и браузер.
Про недостатки, надеюсь, скажет кто-нибудь другой.

Вариант номер два - используем флешевский SharedObject.
Идея та же самая, но в этом случае мы не полагаемся на браузер, а делаем всё самостоятельно.
После логина получаем от сервера некоторые зашиврованные данные и созраняем в SharedObject.
В следующий раз, если обнаруживаем, в SharedObject уже что-то лежит, не предлагаем пользователю ввести имя/пароль, а сразу отправляем эти зашифрованные данные.
Тут уже попрограммировать придётся побольше, но зато мы сами контролируем процесс, настройки браузера нас мало волнуют (зато волнуют настройки флеш-плеера :)).
Про недостатки тоже кто-нибудь обязательно напишет, тут это умеют.

Теперь по поводу того, как шифровать.

Нам нужно зашифровать пару логин-пароль таким образом, чтобы сервер мог проверить, что они действительно соответствуют друг другу и в БД есть такой аккаунт. И при этом никто левый не мог бы расшифровать.
Идеальный вариант - если данные вообще нерасшифровываемые.

Обычно для этого используют необратимую хеш-функцию, чаще всего - MD5.
На самом деле, не такая уж она и не обратимая, но это уже отдельная длинная беседа.

Вобщем, самый наипростейший принцип такой: логин хранится в чистом виде, а вот вместо пароля хранится его MD5-хеш. На сервере тоже пароль в виде MD5-хеш.

Флешка (или браузер) отправляет логин и хеш. Сервер по логину смотрит в базе данных, какой хеш соответствует этому логину. Если совпали - значит всё замечательно. Если нет - значит пароль бы неверный.

Это так, в кратце и популярным языком.

MrPoma 22.03.2008 17:11

WindWalker, про SharedObject - бредятина.

BlooDHounD 22.03.2008 17:41

согласен с предыдущем оратором.

WindWalker 22.03.2008 17:42

Когда я говорил: "Про недостатки тоже кто-нибудь обязательно напишет, тут это умеют" - я ожидал какой-то более конкретной критики, а не бредятины.

BlooDHounD 22.03.2008 18:14

конкретная критика: как быть человеку который зайдёт с другого компа? :)

WindWalker 22.03.2008 18:26

Залогиниться.

У куки ты всегда с собой носишь?

BlooDHounD 22.03.2008 18:53

о том и речь :) вот в этом и весь бред

WindWalker 22.03.2008 19:06

Батенька, у вас серьёзное обострение троллизма и хронический метеоризм в лужу.

Иногда лучше жевать, чем говорить.

etc 22.03.2008 19:11

Товарищи, давайте вы перейдете от личностей к конкретике в проблеме, хорошо? А то будет плохо.

iNils 22.03.2008 19:17

Куки, шара, мне интереснее услышать про обратимость MD5 :D

WindWalker 22.03.2008 19:31

Цитата:

мне интереснее услышать про обратимость MD5
Можешь сам посмотреть: http://plain-text.info/view/action/viewallhashes/
Разумеется, далеко не всё им по зубам. Например, если строчка с кириллицей, то не поломают.
Но в целом... Довольно поучительно.

BlooDHounD 22.03.2008 19:45

интересно как они получат из одно хэша разные значения ...

WindWalker 22.03.2008 19:58

Ну я же сразу говорил: это отдельная тема для отдельной беседы :)

Разумеется, MD5 на самом деле не является обратимой функцией.
Но и абсолютно необратимой тоже не является - иногда можно по хешу восстановить начальные данные. Либо не начальные, а какие-то совершенно другие данные с тем же самым хешем. Что в плане взлома пароля или подделки подписи, почти однофигственно.

Кстати, синус тоже для разных параметров может вернуть одинаковые значения. А арксинус возвращает только одно.
И ничего, как-то вертимся же...

iNils 22.03.2008 20:03

Цитата:

Но для функций, принимающих вход переменной длины и возвращающих хэш постоянной длины (такие, как MD5), коллизии будут существовать всегда, поскольку любому значению хэш-функции может быть сопоставлено бесчисленное множество различных входов.
Поэтому я не думаю, что речь идет не об обратимости, а об поиске любого слова дающего коллизию.
Поэтому храня не только хеш чистого пароля, а еще и хеш суммы пароля с ключевым словом, мы получаем уже два хеша, и тут коллизия не поможет.

WindWalker 22.03.2008 20:17

Ну, ну я так и знал, что разговор обязательно уйдёт в русло секьюрности... Я то просто обрисовал, как всё примерно работает, чтобы автор знал, куда копать и по каким ключевым словам искать.

А уж как хранить пароли - это оооочень большая тема. Ей не то, что отдельного топика - ей отдельного форума мало будет.

P.S.
Вариант md5(pass) + md5(pass+salt) тоже имеет недостаток.
Взлом первого хеша может упростить взлом второго (если мы нашли то самое слово). Кроме того, вероятно существует (но возможно пока неизвестен) алгоритм, который может восстанавливать сразу из двух хешей, благо это даёт нам больше информации.

P.P.S.
В IPB, если я не ошибаюсь, используется md5(md5(pass)+md5(salt))

iNils 22.03.2008 20:21

Цитата:

Сообщение от WindWalker
Вариант md5(pass) + md5(pass+salt) тоже имеет недостаток.
Взлом первого хеша может упростить взлом второго (если мы нашли то самое слово).

А вы уверены, что два разных слова имеющих одинаковый хеш, при добавлении к ним другого слова, опять дадут одинаковый хеш?
Если нет, то это значит, что получив слово PASS2 из HASH1 (хотя оригинал был PASS1) и добавив к нему ключевой слово KEY (PASS2+KEY), вы получите HASH3. Хотя PASS1 + KEY дадут HASH2.
Где бы взять два слово дающих коллизию для проверки? :D
Цитата:

Кроме того, вероятно существует (но возможно пока неизвестен) алгоритм, который может восстанавливать сразу из двух хешей, благо это даёт нам больше информации
А кто сказал, что там имеено сумма с ключевым словом, а не что-то другое?:)
Код:

В IPB, если я не ошибаюсь, используется md5(md5(pass)+md5(salt))
А сделайете md5(md5(pass)+md5(pass)+md5(salt)) и работа у взломщиков пойдет впустую.

Вывод один. Храня пароль не как хеш первого порядка, вы ставите злоумышлинников в тупиковое положение, так как не зная алгорим сохранения, а они даже теоретически не смогут получить из хеша пароль.

WindWalker 22.03.2008 21:58

Цитата:

Сообщение от iNils
А вы уверены, что два разных слова имеющих одинаковый хеш, при добавлении к ним другого слова, опять дадут одинаковый хеш?

Нет, не уверен. Но я говорю о другом.
Даже если брать банальный брутфорс - количество вариантов у нас уже резко сокращается, так как мы знаем часть исходной строки.
Я не знаю, как работает rainbow hack, но не исключено, что информация о некоторой части исходного слова ему может здорово помочь.

Цитата:

А сделайете md5(md5(pass)+md5(pass)+md5(salt)) и работа у взломщиков пойдет впустую.
Если они не знают, что мы используем именно такой алгоритм - то да.

А если знают, то автоматически они знают, что у нас 1-й символ равен 33-му, 2-й символ равен 34-му и т.д.
Кроме того, они знают, что у нас используются только цифры и буквы a, A, b, B, c, C, d, D, e, E, f, F.
Таким образом по крайний мере "верхний" md5 сковырнуть уже будет проще.

---------------
Хотел поискать в гугле примеры коллизий MD5. Два коротких слова, состоящих из ASCII символов не нашёл, зато нашёл исходник генератора коллизий:

http://www.stachliu.com/md5coll.c

iNils 22.03.2008 22:36

Цитата:

Сообщение от WindWalker
количество вариантов у нас уже резко сокращается, так как мы знаем часть исходной строки.

Ха-ха :)Да нет же.

Допустим
1.
Пароль был WORD1.
У вас есть HASH1 и HASH2.
Задача: выяснить значение WORD1

2.
md5 (WORD1) = HASH1
md5 (WORD2) = HASH1
И заметьте, WORD1 и WORD2 могут быть различной длины.

3. (если это действительно так, иначе смысла разговор не имеет на эту тему)
md5 (WORD1 + KEY) = HASH2
md5 (WORD2 + KEY) = HASH3

Однако из HASH1 можно получить только WORD2 (при условии, что идет узнавание именно через обратимость, у нас ведь не числа чтобы был корень из дискриминанта дающий два различных корня в квадратном уровнении, поэтому вы получаете только один вариант)

Теперь у вас есть WORD2 и HASH2. Только толку то? Посомтрите на пункт 3. Знание WORD2 ни как не приблизило вас к узнаванию WORD1, у вас из трех значение WORD1, KEY и HASH2, есть только HASH2.
А для вычисления KEY через WORD2, надо знать значения HASH3. Но его у вас нет, и будет (понято почему?)

WindWalker 22.03.2008 22:54

Ну я сразу же заметил:
Цитата:

Взлом первого хеша может упростить взлом второго (если мы нашли то самое слово).
Т.е. если мы нашли WORD1 - то это уже какое-то подспорье. Не могу точно судить, насколько серьёзное, но всё же неопределённости уже имеем меньше.

Если же нашли WORD2 - значит нам крупно неповезло. Действительно крупно, потому что вероятность такого события крайне мала.

Кстати, на plain-text, насколько я понял, ищут строки ограниченной длины и состоящие из ограниченного набора символов. Поэтому всегда или находят WORD1, или не находят ничего.
------------

Ну да ладно. Тема это вечная. Я сразу сказал, что md5(pass) - это примитивнейший вариант.
Действительно md5(pass+key) - это уже гораздо лучше.
А md5(md5(md5(pass)+md5(pass+key))+md5(key)) - это совсем здорово.
А если md5 заменить на sha1 - то совсем супер.

Вот только я так и не понял, чем шары хуже кукисов, если во всём, кроме способа хранения на компе юзера, принцип один и тот же :)

iNils 22.03.2008 23:02

Так в том то и дело, что вероятность найти WORD1 ничтожна мала (на один хеш можно приходиться 1000, 10000, 100000 и тп коллизий ). Из WORD1...WORDN имеющих одинаковый хеш, можно получить только одно слово. А как узнать другие?


Часовой пояс GMT +4, время: 08:24.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.