
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
Было бы неплохо если бы код на пастбине был :(

Sergey
20.09.2017
10:54:09

Anton
20.09.2017
11:01:49

Aleh
20.09.2017
11:09:16


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
по ид сессии из твоих кук на сервере извлекается твоя сессия в начале запроса, там уже лежит мол кто ты такой и чего делаешь. раз до закрытия браузера - значит кука в памяти, хттп онли.

Dmitry
20.09.2017
11:17:47

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

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
или "воздушные маршалы"
абсолютно юзлес шляпа
но народу спокойнее

Aleh
20.09.2017
11:32:03
хз, обычно это бесполезно

Sergey
20.09.2017
11:32:21

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 в браузере, которые позволят увести куки?

Aleh
20.09.2017
11:43:11

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

Aleh
20.09.2017
11:45:00

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
словарики валяются открыто

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
и профессианализм заключается в том что бы подсказать бизнесу компромис между "удобно, дешево, безопасно"
а не в тупую выполнять его волю
ну то есть "Думать что и зачем ты делаешь"
а не просто "мне сказали кнопку добавить, я добавил, мне ж не сказали что она делать должна"

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

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