@dlangru

Страница 61 из 719
qwe
30.08.2016
12:51:11
Рекомендую осваивать linux на virtualbox. И вообще разрабатывать на виртуальных машинах, которые схожи с целевым устройством — хорошо

то есть не разрабатывать, а тестировать

если компьютеру не хватит памяти или мощности процессора. Компьютер зависнет во время исполнения программы, то пусть это произойдет с виртуальной машиной

товарищи Ярошенко и Лопатин в курсе об этом чате? Или они слишком крутые для него?

Google
Dmitry
30.08.2016
13:38:37
Лопатину не до чатов, а Ярошенко думаю тоже слишком занят

Ну а так да) подтянуть их сюда про мои любимые файберы в 1001 раз поговорить)

qwe
30.08.2016
13:39:51
Лопатин так и сказал?

Dmitry
30.08.2016
13:40:35
Я с ним когда списывался он постоянно на нехватку времени жаловался

Oleg
30.08.2016
13:57:57
кто-нибудь с авторизацией и rest работал?

чёт вопросов масса

можно начать с вопроса о передаче пароля из браузера и вообще авторизации

если по ssl, то не нужно ничего замешивать на клиенте?

Dmitry
30.08.2016
14:00:14
кстати, там либа для oAuth одна есть на гитхабе

если вдруг нужно будет

Oleg
30.08.2016
14:00:27
смотрел, чёт пока не понял подходит оно или нет

насколько я знаю хранить пароли в базе напрямую не очень хорошо... подмешивать соль при передаче пароля лучше на клиенте?

вообще простой способ для этого есть или это js реализуется?

Google
Dmitry
30.08.2016
14:02:50
Ты можешь мой код взять. Там базовая авторизация есть и главное вьюшки переключаются в зависимости от ролей пользователя т.е. шаблон очень компактный

Oleg
30.08.2016
14:03:02
и вот собственно второй по поводу rest авторизовываться то получается нужно в rest? тоесть там проверять логин-пароль

Dmitry
30.08.2016
14:03:13
код не идеальный, но написан очень аккуратно

Dmitry
30.08.2016
14:03:56
так он же по https передается. если так то проблем быть не должно

Oleg
30.08.2016
14:04:25
а в базе значит тоже голый хранить? не дело это... надо шифровать как-нибудь

Dmitry
30.08.2016
14:04:56
ну хэширование тогда логин+пароль

Oleg
30.08.2016
14:05:09
и я не совсем понимаю как с rest'ом потом работать правильно

вот я сверил, хорошо, есть такой пользователь

токен могу сгенерировать

его потом в сессию класть?

Eto
30.08.2016
14:05:57
а в базе значит тоже голый хранить? не дело это... надо шифровать как-нибудь
Так соль и перец добавляй перед хранением. Что тебя останавливает?

Oleg
30.08.2016
14:05:58
чтобы web интерфейс мог с rest работать по js

Так соль и перец добавляй перед хранением. Что тебя останавливает?
если по ssl это можно и на сервере делать или всё-таки на клиенте лучше сразу засолить?

Eto
30.08.2016
14:06:49
его потом в сессию класть?
В куки положи. Или пусть клиент каждый раз добавляет свой токен. Одно и тоже получается.

если по ssl это можно и на сервере делать или всё-таки на клиенте лучше сразу засолить?
А смысл солить на клиенте? Тоже самое, что и голый пароль.

Oleg
30.08.2016
14:07:58
если трафик перехватывается полностью и соль и засоленый пароль будут у перехватчика и он так же может отправить засоленный уже на сервер

бред, согласен

Google
Oleg
30.08.2016
14:09:56
вот сейчас подумал

а зачем солить то?

читал про это читал...

если базу вскроют, то уже никакая соль не поможет

Dmitry
30.08.2016
14:10:26
JWT посмотри еще — кажется так называется

Oleg
30.08.2016
14:10:50
хотя... нет...

Dmitry
30.08.2016
14:11:03
https://github.com/olehlong/jwtd

Oleg
30.08.2016
14:11:20
авторизация будет солить и если отправить засоленый, то он пересолится и будет другим

оке, кажется я понял зачем)))

Dmitry
30.08.2016
14:11:43
что зачем? зачем солить?

Eto
30.08.2016
14:13:07
Храни в базе "пароль" и соль. В конфиге задай перец. Для каждой смены/установки пароля генерируешь новую соль, желательно подлинее чтобы была. В "пароле" хранишь хеш от некой комбинации изначального пароля, соля и перца. Комбинацию придумаешь сам, это своего рода защита.

Eto
30.08.2016
14:14:20
При логине проделываешь те же операции с чистым паролем и сравниваешь с хранимым хешем. Тут ещё момент: использовать неоптимизированное сравнение строк, чтобы время сравнения всегда было константным.

Eto
30.08.2016
14:17:30
Тогда это перец, а не соль.

Oleg
30.08.2016
14:17:38
ок, ладно

это просто подобрать сложнее будет или есть какая-то логическая уязвимость использовать просто перец в коде?

Dmitry
30.08.2016
14:18:37
Так, а как красиво проверить не оканчивается ли путь на слеш чтобы если оканчивается убрать его

Google
Dmitry
30.08.2016
14:20:28
да я смотрю туда. только что-то не вижу фишку отсекающую последний слешь если он есть

Eto
30.08.2016
14:22:36
Пожалуйста.

Dmitry
30.08.2016
14:23:01
о точняк! пасибо!

Oleg
30.08.2016
14:37:26
@sigod ещё вопрос по безопасности получается web-сервис должен отдавать страницу, где в каком-то скрытом теге лежит token доступа, так?

а его уже читает js для обращения к rest

Eto
30.08.2016
14:38:13
Обычно просто в куках передаётся токен сессии.

Oleg
30.08.2016
14:38:29
куки читаются из js?

Admin
ERROR: S client not available

Eto
30.08.2016
14:38:55
Так они посылаются на сервер с каждым запросом. Для JS не надо ничего делать.

Oleg
30.08.2016
14:39:38
так rest же не поддерживает сессии и куки

архитектура такая: есть rest со всем функционалом и есть web морда, которая этот функционал юзает через js

по сему как-то нужно в js передать значение авторизованного токена

Eto
30.08.2016
14:40:42
Тогда токены в запросах. Тут видимо идёт речь про веб-приложения, которым не нужно новые страницы грузить или перезагружать текущую.

Oleg
30.08.2016
14:40:56
да да, примерно

будет страницы 3-4, но на 2х будет активно эксплуатироваться rest

Eto
30.08.2016
14:41:25
Страница загрузилась. Клиент авторизовался и получил токен. Всё, JS во все запросы добавляет данный токен и всё работает.

Oleg
30.08.2016
14:41:43
так как безопасней передать токен в js?

Google
Oleg
30.08.2016
14:42:25
ааа... кажется понял

авторизацию тоже через js сделать видимо имеет смысл

хотя нет...

страниц всё-равно несколько

Eto
30.08.2016
14:43:47
На самом деле, можешь не загоняться. Пускай куки ходят вместе с запросами и никаких проблем.

Тем более, что как ты скажешь им не посылаться? Не уверен, что такое можно через JS.

Oleg
30.08.2016
14:45:38
тоесть просто выставляю токен в куки и всё?

потом его юзаю для работы с rest, так?

Eto
30.08.2016
14:48:59
Просто используй сессию.

Чистый REST хорош для сторонних сервисов. Например, того же Facebook. Когда твоё приложение или сервер к нему обращается.

Oleg
30.08.2016
15:09:15
Чистый REST хорош для сторонних сервисов. Например, того же Facebook. Когда твоё приложение или сервер к нему обращается.
помимо web, возможно, будет desktop и mobile клиенты, наш же rest будет обращаться к yandex и google

вместо web мы сейчас могли просто desktop gtk запилить, но выбрали web

Просто используй сессию.
поэтому нам нужно токен в js запросах

Pavel
30.08.2016
17:16:05
Солить можно алгоритмом bcrypt

Точнее не солить, просто хеш взять от пароля и положить как есть в базу

Это делать обязательно, т.к. в таком случае даже если злоумышленник узнает хеш, то он не сможет залогиниться. + изначальный пароль остается для него загадкой и он не сможет под этим же пользователем и паролем зайти в аккаунт пользователя на другом сайте например.

Когда клиент/десктоп логинится на сайт, он посылает чистый пароль по SSL соединению, это безопасно. Сервер хеширует его, проверяет. И выдает клиенту временный сгенерированный токен сессии.

Evil
30.08.2016
18:38:46
Нахуй куки. Логинишься js, токен кладешь в localStorage и при ajax запросе добавляешь HTTP заголовок Authorization

Oleg
30.08.2016
19:00:57
вообще не в курсе что такое localStorage

Eto
30.08.2016
19:23:52
Если у вас там desktop/mobile клиенты планируются, то куки плохой вариант. Делай как Зло говорит.

Pavel
30.08.2016
20:10:47
bcrypt не простое хешироаание

Страница 61 из 719