@prophp7

Страница 625 из 1387
Sergey
20.09.2017
10:31:40
просто если ты так и так хранишь идентификатор сессии, то зачем нужен hmac

короч весь вопрос - какие у тебя требования к аутентификации

Anton
20.09.2017
10:44:21
Мне нужны куки/jwt, чтобы каждый раз не долбиться за авторизацией на сервер (оно понятно) . Я предполагаю при попытке логина отправлять pass (захэшированный (пароль + соль)) , и получать в ответ уникальный идентификатор от сервера. На сервере у себя оставляю идентификатор и срок годности. Если задавать срок годности на клиенте, то что мешает зловреду постоянно отодвигать его и пользоваться аккаунтом? А если оставлять только на сервере, то как клиенту понять через сколько ему надо снова логиниться. Чёт запутался. Или это у меня паранойя?

$iD
20.09.2017
10:46:49
либо тебе это не надо, либо oauth, с access_token/refresh_token

Google
Ivan
20.09.2017
10:50:13
Кто нибуть может по явоскрипту подсказать?

$('#create_order').click(function(){ var check=$('co-notice--danger').is(':empty'); if(check == false){ var docHeight = $(document).height(); $("body").append("<div id='overlay'></div>"); $("#overlay") .height(docHeight) .css({ 'opacity' : 0.4, 'position': 'absolute', 'top': 0, 'left': 0, 'background-color': 'black', 'width': '100%', 'z-index': 5000 }).delay(3000).fadeOut('slow'); $("#popuporder").css("display", "block").delay(3000).fadeOut('slow'); }); $('#overlay').live('click', function() { $(this).fadeOut("slow", function() { $(this).remove(); }); }); }

почему то проскакивает.

Sergey
20.09.2017
10:52:50
Было бы неплохо если бы код на пастбине был :(

Anton
20.09.2017
11:01:49
а зачем ему еще раз логиниться? зачем тебе expiration вообще?
Разве при каждой перезагрузке страницы/браузера ему не нужно было аутентифицироваться заново в течение expiration? оО

Anton
20.09.2017
11:15:04
> чтобы каждый раз не долбиться за авторизацией на сервер (оно понятно) не, непонятно
Я потому и спрашиваю, мб сам дурак и хочу чего-то нереального. Как у нормальных белых людей реализуются сессии? Я логинюсь на Стак и 24 часа сколько бы браузер не закрывал - на этом компе у меня на Стаке всегда будет мой залогиненный аккаунт. Я полагаю, что он хранит у меня на компе куку с expiration в 24, и эти 24 часа, пока есть эта кука - он НЕ долбится за авторизацией. Или нет? Каждый раз он сверяет мой (допустим там просто уникальный идентификатор) с уникальным идентификатором, записанном на авторизационном сервере? нагрузка же лишняя, нет?

$iD
20.09.2017
11:17:38
http://php.net/manual/ru/function.setcookie.php

3 параметр

Jimm
20.09.2017
11:17:44
по ид сессии из твоих кук на сервере извлекается твоя сессия в начале запроса, там уже лежит мол кто ты такой и чего делаешь. раз до закрытия браузера - значит кука в памяти, хттп онли.

Sergey
20.09.2017
11:17:55
> он НЕ долбится за авторизацией. ну за авторизацией он и не долбится. А вот процесс аутентификации происходит на КАЖДЫЙ запрос.

Google
Sergey
20.09.2017
11:18:50
а далее ты просто должен для себя решить: хочешь ты на каждую аутентификацию ходить в базу (пускай в рэдис) или же ты хочешь просто хэш проверить + сходить проверить не находится ли токен в блэклисте

вариант с блэклистами хорошо в купе с фильтром блума, тогда в этом есть хоть какой-то смысл

иначе это просто переизобретение сессий на сервере

рефреш токены же и прочее "вроде как" призваны бороться с MITM на случай если у тебя токен уведут. но как бы есть ssl + ssl pinning

а делать инвалидацию сессий по времени - рак

Dmitry
20.09.2017
11:23:30
а делать инвалидацию сессий по времени - рак
а это не программистам решать, это должно приходить от бизнеса и СБ в ТЗ

Sergey
20.09.2017
11:24:26
а это не программистам решать, это должно приходить от бизнеса и СБ в ТЗ
если ко мне придет клиент и скажет "а можно вылогинивать админа через 15 минут бездействия" - я уточню "а зачем? Может я вам просто двухфакторную аутентификацию прикручу? мне не сложно, мы всеравно для вашей админки юзаем серд пати сервис для этого добра"

Dmitry
20.09.2017
11:25:12
клиент скажет - это требования СБ

Sergey
20.09.2017
11:25:17
практика показывает что это проще, удобнее и безопаснее нежели придумывать что считать бездействием

клиент скажет - это требования СБ
не ну иногда приходится идти на встречу маразмам)

оно конечно не всегда бывает так как нам хочется

Dmitry
20.09.2017
11:26:08
а двуфакторная и время жизни сессии... ну разные вещи

Sergey
20.09.2017
11:26:23
а двуфакторная и время жизни сессии... ну разные вещи
вот скажи мне, зачем ограничивать время жизни сессии?

я понимаю когда "пока браузер открыт" - это нормальная практика

а вот "вот 15 минут мышкой не водил - вылогини"

Dmitry
20.09.2017
11:26:54
а это и есть время жизни сессии

ты при разработке сервера не можешь полагаются на браузер, что, мол, если его закрыли - кука удалена

так что так и или иначе - протухание куки придется реализовать

Sergey
20.09.2017
11:28:20
Dmitry
20.09.2017
11:28:36
зачем убирать сессию при закрытии браузера?

Google
Sergey
20.09.2017
11:28:51
зачем убирать сессию при закрытии браузера?
хз, тоже можешь попробовать ответить на этот вопрос

как по мне это все "имитация" безопасности

Aleh
20.09.2017
11:29:05
вот скажи мне, зачем ограничивать время жизни сессии?
девайс может юзаться не только одним человеком

и бывают всякие нелепые законы...

Dmitry
20.09.2017
11:29:16
ну пассивные операции типа просмотра баланса банковского счета - это уже серьезная проблема

Sergey
20.09.2017
11:29:39
и бывают всякие нелепые законы...
ну это как таможенный контроль в аэропорту

или "воздушные маршалы"

абсолютно юзлес шляпа

но народу спокойнее

девайс может юзаться не только одним человеком
и как от этого спасет вылагинивание при бездействии? я дождусь пока чувак на 5 минут отойдет и поделаю чего захочу

Sergey
20.09.2017
11:32:21
а через 5 минут уже сессия вырубится)
не, я не буду ждать 5 минут, я подожду пока чувак отойдет, это секунд 30

Aleh
20.09.2017
11:32:51
или оглушишь стальной палкой и отберешь

или пистолетом пригрозишь и скажешь ему наделать шалостей, ну типа того, скорее защита от дурака

Dmitry
20.09.2017
11:34:11
да да ... логика на уровне "зачем нужна эта вся двуфакторная аутентификация если в хозяйственном можно купить паяльник" ;)

Sergey
20.09.2017
11:34:49
паяльник пойдет чуть по другой статье

так что разница таки есть

Dmitry
20.09.2017
11:36:57
в конце концов придет к тебе сертификация по PCI DSS, а ты будешь стоять и с умным видом рассуждать "ну идиоты, зачем таймаут сессии"

Aleh
20.09.2017
11:38:14
ну как пример - банкоматы

Google
Dmitry
20.09.2017
11:40:48
в конце конца концов, сессионная кука не только MITM ом уводится, ты вот можешь быть уверен в отсутствии 0-day в браузере, которые позволят увести куки?

Dmitry
20.09.2017
11:44:28
панацея? напомнить как китайцы умудрились выдавать сертификаты на github и тому подобное? ;)

Dmitry
20.09.2017
11:46:55
да и гарантий, что не появится новых уязвимостей в библиотеках, позволяющее провести атаку на tls тоже как бы нет... но протухание сессий все же скорее не про mitm, а про более отложенные по времени атаки

просто один из пунктиков выстраивания безопасной системы

тут недавно на форуме человек утверждал, что пароли достаточно md5 хешировать если подмешать секретный ключ - и не подберет никто

там правда клиника была, он и объяснений не хотел понимать, но я о том, что если ты чего-то не понимаешь, но есть best practics - лучше следовать им... ну и в идеале разобраться, но, блин... нельзя знать все

Dmitriy
20.09.2017
12:08:46
просто безопасность бывает разных уровней

кому то и мд5 будет норм

а кому то давай двух факторную

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

короче каждому по потребностям и по возможностям

Dmitry
20.09.2017
12:12:12
Есть минимальный уровень, ниже которого разработчик просто не должен подпускаться к коду. В идеале, да....

Dmitriy
20.09.2017
12:12:44
Еще раз.. основной вопрос это вопрос денег

ты можешь там мутить чо хочешь

Dmitry
20.09.2017
12:12:51
А на практике засилье "а чо" и приводит, что у "вконтакте" уводят базу паролей в чистом виде

Dmitriy
20.09.2017
12:13:09
но владелец бизнеса поставит пароль qwer1234 и привет

вконтакте это другой уровень и другой вообще разговор

Dmitry
20.09.2017
12:16:30
люди там те же самые - "обыкновыенные разработчики"

Google
Sergey
20.09.2017
12:20:01
но владелец бизнеса поставит пароль qwer1234 и привет
лайххак - вместо валидации по символам лучше добавить валидацию на присутствие пароля в top 1000 самых популярных

словарики валяются открыто

Dmitriy
20.09.2017
12:20:46
Владелец захочет простой пароль и ты хоть какие валидации ставь

Евгений
20.09.2017
12:20:59
— Извините, Ваш пароль используется более 30 дней, необходимо выбрать новый! — розы — извините, слишком мало символов в пароле! — розовые розы — Извините, пароль должен содержать хотя бы одну цифру! — 1 розовая роза — Извините, не допускается использование пробелов в пароле! — 1розоваяроза — Извините, необходимо использовать как минимум 10 различных символов в пароле! — 1грёбанаярозоваяроза — Извините, необходимо использовать как минимум одну заглавную букву в пароле! — 1ГРЁБАНАЯрозоваяроза — Извините, не допускается использование нескольких заглавных букв, следующих подряд! — 1ГрёбанаяРозоваяРоза — Извините, пароль должен состоять более чем из 20 символов! — 1ГрёбанаяРозоваяРозаБудетТорчатьИзЗадаЕслиМнеНеДашьДоступПрямоБляСейчас! — Извините, этот пароль уже занят! https://www.inpearls.ru/

Sergey
20.09.2017
12:21:42
> Извините, не допускается использование пробелов в пароле! ненавижу такие сервисы

Dmitry
20.09.2017
12:21:54
не нужно путать бизнес требования к безопасности и профессионализм разработчика

Sergey
20.09.2017
12:22:51
> — Извините, этот пароль уже занят! тру стори, я как-то работал с сервисом где сообщение валидации не только говорило что такое пароль занят, но еще и у кого он юзается)

Dmitry
20.09.2017
12:23:58
гм... бизнес требования проистекают из профессионализма команды разработки? ;)

Sergey
20.09.2017
12:24:49
гм... бизнес требования проистекают из профессионализма команды разработки? ;)
не совсем так. Есть юридические аспекты вроде "собрался хранить номера карточек - проходи PCI сертификацию", а есть "хочу что бы пользователи думали что у нас секьюрно, замутите секьюрити вопросы плиз для восстановления"

и профессианализм заключается в том что бы подсказать бизнесу компромис между "удобно, дешево, безопасно"

а не в тупую выполнять его волю

ну то есть "Думать что и зачем ты делаешь"

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

Dmitry
20.09.2017
12:26:57
не, я не совсем про то... есть вещи, который бизнес вообще не требует никогда

те же баззворды из топика

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

Sergey
20.09.2017
12:30:04
и если ты не дно ты должен идти в ногу со временем и уметь задавать вопросы "а зачем?"

короч ладно, я уже не знаю о чем мы

Страница 625 из 1387