Мохнатые уроды и моральные пёзды. Войти !bnw Сегодня Клубы

Так, смехуёчки в сторону, серьёзный базар есть.
Каким вы видите идеальный механизм сессий в вебне?
Понятно, нужны кукисы™. localstorage не везде есть и не везде удобен.
В кукисах типично хранится либо мелочёвка, либо id записи с большими данными.
Далее неплохо бы добавить туда криптографически-сильную шнягу для защиты от подделки куки. Ещё неплохо бы перегенерировать куку периодически, и не пускать с устаревшей кукой. Ещё что?
Или расскажите, что вас БЕСЕД в текущих используемых инструментах, которыми работаете с сессиями.

#ZLKHBP / @gds / 3861 день назад

> криптографически-сильную шнягу для защиты от подделки куки http://i.imgur.com/ppI0oJg.gif
#ZLKHBP/UIS / @krkm / 3861 день назад
@autism эта картинка оскорбляет белых. Убери её.
#ZLKHBP/1BD / @gds --> #ZLKHBP/UIS / 3861 день назад
> Далее неплохо бы добавить туда криптографически-сильную шнягу для защиты от подделки куки. Wat. Только HTTPS, только хардкор.
#ZLKHBP/SZM / @l29ah / 3861 день назад
нахуй тебе на клиенте вообще что-то кроме токена? localForage + полифилл в куки
#ZLKHBP/O2T / @krkm / 3861 день назад
@l29ah я про другой сценарий. Представь, есть у тебя кука, в ней "id=123". Ты её локально меняешь на "id=234" и получаешь доступ к чужой сессии.
#ZLKHBP/STC / @gds --> #ZLKHBP/SZM / 3861 день назад
@gds А, понятно.
#ZLKHBP/VVG / @l29ah --> #ZLKHBP/STC / 3861 день назад
@autism годно, буду думать. И от аутизма какая-то польза.
#ZLKHBP/JNP / @gds --> #ZLKHBP/O2T / 3861 день назад
@gds представь что у тебя кука token=6f7e0bd3e3488ddf22d789ec9e28caa6 ты ее локально меняешь на token=c88a74e608f63e8572133f26b0b4d2c2 и получаешь доступ к чужой сессии
#ZLKHBP/Z8T / @krkm --> #ZLKHBP/STC / 3861 день назад
@autism вообще лольнул с нумерованных сессий канеш
#ZLKHBP/X4A / @krkm --> #ZLKHBP/Z8T / 3861 день назад
@autism в том-то и прикол, что можно рядом с 6f7e0bd3e3488ddf22d789ec9e28caa6 (или в нём самом) хранить, допустим, результат от md5(секрет + токен). Без знания секрета ты не сможешь сформировать куку так, чтобы она была валидной для твоего токена. Следовательно, не сможешь подставить произвольный токен.
#ZLKHBP/Z6N / @gds --> #ZLKHBP/Z8T / 3861 день назад
@gds кому нужно? зачем нужно? зачем тебе хранить на клиенте что-то кроме рандомной строки (токена), по которой клиента авторизовывать?
#ZLKHBP/6SJ / @krkm --> #ZLKHBP/Z6N / 3861 день назад
@polecat но зачем? еще ебаться костылять защиту от ДВОЙНОГО ПОТРАЧИНЬЯ
#ZLKHBP/SUP / @krkm --> #ZLKHBP/83Z / 3861 день назад
@autism например, может оказаться нужным, если по каким-то причинам не хочется делать рандомную строку. К примеру, если ХАЙЛОАД и сессии хранятся проиндексированными по целому числу, и доставать их быстрее, чем если бы они были проиндексированы по рандомной строке. Но это хуита, конечно. Я прикидываю все варианты, а не только рандомную строку. Хотя твоё мнение учёл.
#ZLKHBP/4MC / @gds --> #ZLKHBP/6SJ / 3861 день назад
@polecat привет)))))))00000
#ZLKHBP/E1R / @gds --> #ZLKHBP/ZTH / 3861 день назад
@gds строка == число. где твой бог?
#ZLKHBP/UFX / @krkm --> #ZLKHBP/4MC / 3861 день назад
@stiletto годно. Там в том числе упомянута replay attack. Вот про неё как раз и размышлял в /0, про "периодически обновлять куку". Как вообще это делают, кроме использования https, не в курсе?
#ZLKHBP/O21 / @gds --> #ZLKHBP/G34 / 3861 день назад
@gds костылят блокчейн //ппц проблемы себе выдумывать
#ZLKHBP/UCQ / @krkm --> #ZLKHBP/O21 / 3861 день назад
@autism строка -- большое число. По большим числам базы данных строят большие индексы, они хуже помещаются в память, вызывают больше чтений с диска. А токен должен быть в том числе большой строкой.
#ZLKHBP/KIF / @gds --> #ZLKHBP/UFX / 3861 день назад
@gds че? какая разница по какой хуйне строить дерево, какие еще нахуй чтения с диска, ты что несешь?
#ZLKHBP/LQC / @krkm --> #ZLKHBP/KIF / 3861 день назад
@autism поясни. Проблемы не выдумываю. Рассматриваю всё пространство возможностей.
#ZLKHBP/20L / @gds --> #ZLKHBP/UCQ / 3861 день назад
@autism нет времени объяснять // ты тупой штоле
#ZLKHBP/5YT / @gds --> #ZLKHBP/LQC / 3861 день назад
@gds какую проблему решает шифросессия?
#ZLKHBP/TE4 / @krkm --> #ZLKHBP/20L / 3861 день назад
@gds >если ХАЙЛОАД >сессии хранятся проиндексированными по целому числу >большие индексы >хуже помещаются в память >больше чтений с диска >ты тупой штоле лан //хули ты меня там тратиш
#ZLKHBP/J5T / @krkm --> #ZLKHBP/5YT / 3861 день назад
@autism не "шифро", а "подписанная". Даёт возможность хранить любые данные на клиенте, решает проблему "пользователь может поменять данные без разрешения". Чем хорошо "любые данные" -- они могут быть и мелкими, для ХУЙЛОАДА, и достаточно большими, чтобы не нужно было обращаться к БД для доступа к ним -- достаточно прочитать куку и проверить её поцпейсь.
#ZLKHBP/LH5 / @gds --> #ZLKHBP/TE4 / 3861 день назад
@gds > Даёт возможность насоздавать уязвимостей на ровном месте в своих велосипедах > Даёт возможность тратить ресурсы сервера на проверку подписи > Даёт возможность потешить ЧСВ велосипедя защиту от replay-атак ftfy > Даёт возможность хранить любые данные на клиенте кейс плз > достаточно большими, чтобы не нужно было обращаться к БД > куки бля, иди нахуй, наркоман
#ZLKHBP/HAQ / @krkm --> #ZLKHBP/LH5 / 3861 день назад
@autism replay ты и через токен получишь. > кейс плз да блядь всё что угодно -- ид юзера, его имя, выбранный язык, ещё какую хуиту, типично нужную для рендеринга страницы.
#ZLKHBP/CUT / @gds --> #ZLKHBP/HAQ / 3861 день назад
@gds > replay ты и через токен получишь. я про пересылку устаревшей куки >да блядь всё что угодно -- ид юзера, его имя, выбранный язык, ещё какую хуиту, типично нужную для рендеринга страницы. я про кейс где твой велосипед будет хоть сколько-нибудь оправдан
#ZLKHBP/O6D / @krkm --> #ZLKHBP/CUT / 3861 день назад
@autism > я про пересылку устаревшей куки это опционально. И не знаю, сделаю ли это. Если окажется сложным -- забью. С другой стороны, как бы ты защищался от replay attack через токены? > я про кейс где твой велосипед будет хоть сколько-нибудь оправдан куки (в том числе подписанные) -- это не велосипед. А хранение сессий как-то да надо сделать. Будь то подписанные куки или рандомная строка. В целом, я все достоинства и недостатки этих двух подходов понял, да и ты их суммировал выше по треду. Не тупой лал.
#ZLKHBP/HQ3 / @gds --> #ZLKHBP/O6D / 3861 день назад
@gds > как бы ты защищался от replay attack через токены? чо за? > куки (в том числе подписанные) -- это не велосипед именно что велосипед > А хранение сессий как-то да надо сделать пацаны хранят в редисе и не выебываются
#ZLKHBP/N9R / @krkm --> #ZLKHBP/HQ3 / 3861 день назад
@autism с куками еще алсо CSRF-токены пердолить, ну нахуй (в пизду)
#ZLKHBP/4TF / @krkm --> #ZLKHBP/N9R / 3861 день назад
@autism редис не подходит для хранения сессии на клиенте. Да и вообще, не совсем понимаю, что ты хочешь сказать в целом. Хочешь сказать, что мне не нужно работать с сессиями?
#ZLKHBP/VR9 / @gds --> #ZLKHBP/N9R / 3861 день назад
@gds я нихуя не пойму нахуй тебе сессии на клиенте
#ZLKHBP/3HV / @krkm --> #ZLKHBP/VR9 / 3861 день назад
@autism что-то относящееся к сессии (хоть и токен) хранить таки надо. Вощем, если нет конструктива, предлагаю свернуть беседу.
#ZLKHBP/DQC / @gds --> #ZLKHBP/3HV / 3861 день назад
@autism храню в sqlite, мне норм
#ZLKHBP/FU0 / @anonymous --> #ZLKHBP/N9R / 3861 день назад
@autism >2017 >использовать фреймворк без csrf из коробки
#ZLKHBP/6DN / @anonymous --> #ZLKHBP/4TF / 3861 день назад
@gds токен — не сессия, а только идентификатор сессии. вся сессия у тебя на сервере. хули ты там изобретаешь.
#ZLKHBP/90T / @krkm --> #ZLKHBP/DQC / 3861 день назад
@anonymous >вьюхи на сервере лан
#ZLKHBP/Q2N / @krkm --> #ZLKHBP/6DN / 3861 день назад
@autism беседу со своей стороны завершаю, так как мне понятны оба подхода.
#ZLKHBP/YUV / @gds --> #ZLKHBP/90T / 3861 день назад
@autism >2017 >mvc
#ZLKHBP/59N / @anonymous --> #ZLKHBP/Q2N / 3861 день назад
@gds пук
#ZLKHBP/06L / @krkm --> #ZLKHBP/YUV / 3861 день назад
@stiletto почему я вижу в посте через вебню каменты от заблеклищенного анонимуса?
#ZLKHBP/GH6 / @gds --> #ZLKHBP/G34 / 3861 день назад
@gds потому что так задумано by-design
#ZLKHBP/ACW / @anonymous --> #ZLKHBP/GH6 / 3861 день назад
@gds потому что ты хуй // на самом деле потому что опенсурц
#ZLKHBP/2SL / @anonymous --> #ZLKHBP/GH6 / 3861 день назад
@gds потому что никого не беспокоят твои проблемы
#ZLKHBP/NQV / @krkm --> #ZLKHBP/GH6 / 3861 день назад
Вроде бы всё верно. Самое основное -- добавить какую-то подпись для защиты от подмены куки (по типу питоновской itsdangerous).
#ZLKHBP/NXR / @kb / 3861 день назад
@kb почитал, да, что-то похожее нужно.
#ZLKHBP/NAD / @gds --> #ZLKHBP/NXR / 3861 день назад
@gds >что-то похожее не нужно.
#ZLKHBP/91E / @krkm --> #ZLKHBP/NAD / 3861 день назад
@autism в одном из подходов -- нужно, в другом -- не нужно.
#ZLKHBP/2V0 / @gds --> #ZLKHBP/91E / 3861 день назад
@gds >51 комментарий >по-прежнему неправ
#ZLKHBP/BYO / @krkm --> #ZLKHBP/2V0 / 3861 день назад
@autism в чём неправ -- в том, что оба подхода возможны?
#ZLKHBP/LQ8 / @gds --> #ZLKHBP/BYO / 3861 день назад
@gds в том что выбiраешь неправильный
#ZLKHBP/O6W / @krkm --> #ZLKHBP/LQ8 / 3861 день назад
@autism а я разве выбираю? Я хочу оба этих варианта. И твой вариант будет даже проще в реализацiï, это я понимаю.
#ZLKHBP/6F8 / @gds --> #ZLKHBP/O6W / 3861 день назад
@gds вариант с криптокуками не дает никаких преимуществ кроме возможности потратить несколько дней на велосипеды
#ZLKHBP/EZS / @krkm --> #ZLKHBP/6F8 / 3861 день назад
в торнаде, кстати, есть криптокуки, но я никогда не пользовался и не смотрел как они реализованы
#ZLKHBP/H1P / @stiletto / 3861 день назад
@autism 1. у меня всё равно всё велосипедерастическое, 2. сложно штоле в конфиге прописать секрет, разбить содержимое куков по разделителю, посчитать мд5 и сверить? Ну пиздец, работы на минут 20..30.
#ZLKHBP/0WQ / @gds --> #ZLKHBP/EZS / 3861 день назад
@gds еще решать проблему пересылки устаревшей сессии надо
#ZLKHBP/IFC / @krkm --> #ZLKHBP/0WQ / 3861 день назад
@stiletto почитал, вроде как реализация классическая, без особых фантазий.
#ZLKHBP/W4O / @gds --> #ZLKHBP/H1P / 3861 день назад
@autism а как с токеном решается эта проблема?
#ZLKHBP/C0N / @gds --> #ZLKHBP/IFC / 3861 день назад
@gds сессия на сервере же, не может быть дубликатов
#ZLKHBP/QOR / @krkm --> #ZLKHBP/C0N / 3861 день назад
@gds токену от устаревшей сессии не к чему подходить
#ZLKHBP/EU5 / @stiletto --> #ZLKHBP/C0N / 3861 день назад
@autism то есть, старые сессии удаляют на сервере. В подходе с подписанными куками вопрос решится добавлением времени в подписываемую часть. То есть, хранить время и реагировать на него придётся в обоих случаях. Другой вопрос, где хранится время и какой код на него реагирует.
#ZLKHBP/ZIB / @gds --> #ZLKHBP/QOR / 3861 день назад
@gds > В подходе с подписанными куками вопрос решится добавлением времени в подписываемую часть. как поможет-то? ты отдаешь мне подписанную куку с данными, через какое-то время данные меняются, ты переподписываешь и снова мне отдаешь. но я беру и отправляю устаревший вариант данных, а не последнюю версию куки. твои действия?
#ZLKHBP/KAX / @krkm --> #ZLKHBP/ZIB / 3861 день назад
@gds чем ты упарываешься и где это взять?
#ZLKHBP/KEG / @anonymous --> #ZLKHBP/ZIB / 3861 день назад
@autism если данные могут меняться -- моих действий не будет, нужно только хранить всё на сервере. Это как бы очевидно. Потому я не хочу только "подписанные куки" иметь, это неразумно. А ещё неразумно хранить слишком дохуя в куках. Если же просто устаревшая сессия -- в подписанных данных есть время, по нему шлём нахуй, если устарело.
#ZLKHBP/711 / @gds --> #ZLKHBP/KAX / 3861 день назад
@polecat ент
#ZLKHBP/DBP / @238328 --> #ZLKHBP/83Z / 3861 день назад
@gds тогда нахуй весь этот костылепром нахуй нужен-то? какой профит вообще?
#ZLKHBP/CF7 / @krkm --> #ZLKHBP/711 / 3861 день назад
@autism например, чтобы не лазить в базу за данными, на изменяемость которых насрать. Или чтобы использовать более короткие ключи для поиска данных о сессии.
#ZLKHBP/KD4 / @gds --> #ZLKHBP/CF7 / 3861 день назад
@gds представил себе велосипеды проверок что нужно проверять а что нет вместо того, чтобы тупо получать всю сессию из редиса и не ебать себе мозги. экономия на ключах — это вообще ебола какая-то, более безумной наркомании я не слышал со времен пхп-шных холиваров count vs sizeof
#ZLKHBP/S0W / @krkm --> #ZLKHBP/KD4 / 3861 день назад
@autism твоё мнение очень важно для меня! А проверки -- не велосипеды, а дсл для раскидки атрибутов в разные категории -- в куки, в бд. Кодогенерация. Всё равно что-то типа фреймворка делаю, там кодогенерация уже есть.
#ZLKHBP/W6R / @gds --> #ZLKHBP/S0W / 3861 день назад
@gds ура //к
#ZLKHBP/GFA / @krkm --> #ZLKHBP/W6R / 3861 день назад
@autism да говно, на самом деле. А я -- упоротый, как ты верно подметил. Обнимемся! Обнимемся!
#ZLKHBP/0MX / @gds --> #ZLKHBP/GFA / 3861 день назад
@autism *redis, *php
#ZLKHBP/3UA / @anonymous --> #ZLKHBP/S0W / 3861 день назад
@autism мне ближе "KEEP CAML AND CURRY ON".
#ZLKHBP/5FE / @gds --> #ZLKHBP/PPA / 3861 день назад
@autism А нахуя мне говно на сервере хранить? У меня пара сайтов поднята без сторейджа на стороне сервера, мне заебись.
#ZLKHBP/AZ6 / @komar --> #ZLKHBP/O2T / 3861 день назад
@komar нахуй тебе тогда сессии?
#ZLKHBP/PAN / @krkm --> #ZLKHBP/AZ6 / 3861 день назад
@autism Логиниться.
#ZLKHBP/QCR / @komar --> #ZLKHBP/PAN / 3861 день назад
@autism Криптоподпись гарантирует, что никто свои данные тебе пихать в куку не будет. Не удастся дальше криптопроверки пропихнуть твой "специально подготовленный зловредный токен". Ну и также хорошо иногда какие-то мусорные данные прямо в куке хранить, для таких целей криптоподпись норм.
#ZLKHBP/VTP / @kb --> #ZLKHBP/EZS / 3860 дней назад
@kb могут быть проблемы если клиент отправит старую куку (после того как ты изменил что-то в куке и переподписал)
#ZLKHBP/97O / @krkm --> #ZLKHBP/VTP / 3860 дней назад
@autism внезапно: так можно же поменять секрет, если, к примеру, изменился формат данных, хранимых в куке. Или в других случаях, когда хочется прекратить действие всех старых кук.
#ZLKHBP/EHV / @gds --> #ZLKHBP/97O / 3860 дней назад
@gds че
#ZLKHBP/XFK / @krkm --> #ZLKHBP/EHV / 3860 дней назад
@autism куку подписывают с использованием какого-то секрета, хранимого на сервере. Если его поменять, старые подписанные куки не пройдут валидацию.
#ZLKHBP/8TC / @gds --> #ZLKHBP/XFK / 3860 дней назад
@gds то есть, тебе нужно постоянно дергать секрет, почему бы тогда уже сессию всю не дергать, если у тебя меняются секреты?
#ZLKHBP/X0G / @krkm --> #ZLKHBP/8TC / 3860 дней назад
@gds дристнул секретом тебе в ротешник
#ZLKHBP/A4O / @238328 --> #ZLKHBP/8TC / 3860 дней назад
@238328 как некультурно. Заканчивай эту хуиту.
#ZLKHBP/PH9 / @gds --> #ZLKHBP/A4O / 3860 дней назад
@gds как? // закончу — что делать будешь?
#ZLKHBP/RXC / @238328 --> #ZLKHBP/PH9 / 3860 дней назад
@238328 каком кверху)))0
#ZLKHBP/08Z / @anonymous --> #ZLKHBP/RXC / 3860 дней назад
@238328 как -- как-нибудь так или эдак. // жить день за днём, час за часом.
#ZLKHBP/TDA / @gds --> #ZLKHBP/RXC / 3860 дней назад
@gds уникально // лан
#ZLKHBP/TOD / @238328 --> #ZLKHBP/TDA / 3860 дней назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.