[Ответить в тред] Ответить в тред

02/12/16 - Конкурс визуальных новелл доски /ruvn/
15/11/16 - **НОВЫЙ ФУНКЦИОНАЛ** - Стикеры
09/10/16 - Открыта доска /int/ - International, давайте расскажем о ней!

Check this out!

Новые доски: /2d/ - Аниме/Беседка • /wwe/ - WorldWide Wrestling Universe • /ch/ - Чатики и конфочки • /int/ - International • /ruvn/ - Российские визуальные новеллы • /math/ - Математика • Создай свою

[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 75 | 5 | 18
Назад Вниз Каталог Обновить

Аноним 05/05/17 Птн 01:11:41  152379279  
php-elephant-lo[...].png (43Кб, 1184x742)
Хочу сделать авторизацию или аутентификацию, похуй по кукам. Правильно ли будет реализовать ее следующим образом:

0. Авторизированным считается, когда в сессии имеется логин.

1. При авторизации (если юзер поставил галку "запомнить меня"), помимо сессии, записываем в куки рандомный хэш и логин юзера, а также записываем этот хэш в БД к этому логину.

2. Всегда проверяем ниличие кук с логином и сессией

3. Если они есть. То проверяем равен ли хэш из кук хэшу из БД

4. Если равен - создаем сессию = авторизировали

Какие подводные? Что я упускаю?
Аноним 05/05/17 Птн 01:20:42  152379737
бамп
Аноним 05/05/17 Птн 01:25:04  152379952
>>152379279 (OP)
Я не особый эксперт в пхп, авторизацию никогда не делал, но по описанному тобою варианту ведь если украсть куки, то можно выдавать себя за пользователя. Нужно тогда к ip привязать этот хэш, например. А лучше погугли как все это нормально делать и защититься от хакеров.
Аноним 05/05/17 Птн 01:28:40  152380130
>>152379952
дык куки на то и куки, что они всегда не безопасны. Везде же пишут что-то типа "запомнить меня (не безопасно)" или у контакта наоборот от противного "чужой компьютер" т.е. наоборот не запоминать в куках.

Я гуглил, но давно и по памяти вроде оно так делается. Интересно че анон скажет.

А по поводу привязки к IP - я в администрировании этом всем не шарю, но у всех он динамичный - это раз, а два - если ты зашел дома - авторизовался, а потом пошел куда-то, то там уже не сработает - хуйня
Аноним 05/05/17 Птн 01:31:31  152380276
>>152379279 (OP)
>2. Всегда проверяем ниличие кук с логином и хэшем
фикс
Аноним 05/05/17 Птн 01:38:19  152380572
бамп
Аноним 05/05/17 Птн 01:42:11  152380753
Гугли $_SESSION и session_start, да и сами session_* функции. Вообще забей на печенье. В php всё сделали за тебя.
Аноним 05/05/17 Птн 01:44:13  152380831
>>152380753
зачем мне это гуглить?
Аноним 05/05/17 Птн 01:48:07  152380997
>>152380831
Потому что изобретаешь велосипед, очевидно
Аноним 05/05/17 Птн 01:48:40  152381013
>>152379279 (OP)
Как раз разбираю эту тему сейчас.
Вроде бы годный план.
Аноним 05/05/17 Птн 01:49:39  152381055
Алсо, не слушай этого пидора, делай по-своему, если хочешь лучше разобраться.
Аноним 05/05/17 Птн 01:51:46  152381141
>>152379279 (OP)

>0. Авторизированным считается, когда в сессии имеется логин.

Куки можно подделать, вписав любой логин.

>1. При авторизации (если юзер поставил галку "запомнить меня"), помимо сессии, записываем в куки рандомный хэш и логин юзера, а также записываем этот хэш в БД к этому логину.

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

-----

Можно еще вписать в БД user_agent пользователя, если вдруг куки подделают, то ты проверишь и поймешь, что устройство - иное.

Можно много всякой хуйни вписать, некие "отпечатки", например - разрешение экрана (но это с js)
Аноним 05/05/17 Птн 01:51:50  152381146
>>152380997
Как мне гугление про сессии, поможет сделать авторизацию по кукам без велосипедов?
Аноним 05/05/17 Птн 01:53:21  152381215
>>152379279 (OP)
а разве в пхп нет стандартной аутентификации?
Аноним 05/05/17 Птн 01:54:59  152381290
>>152381141
>Куки можно подделать, вписав любой логин
а сессию подделать нельзя. Причем тут куки?

>Лучше тогда просто хэш, без имени пользователя
задумался
Аноним 05/05/17 Птн 01:56:42  152381360
2017-04-2321-11[...].png (632Кб, 594x598)
>>152379279 (OP)
пользуйся, епт
реализовал куки и сессии, переделать только на куки сам сможешь https://github.com/grigoryMovchan/auth/tree/auth_mvc
Аноним 05/05/17 Птн 01:56:46  152381364
>>152381146
Используй фреймворк и не еби мозги.
Фреймворки, как правило, имеют базовые вещи, вроде авторизации, в коробке. И это безопасно, потому как там учтено все - и фильтрация есть и база данных сгенерированная под это и т.п.
Аноним 05/05/17 Птн 01:57:48  152381406
>>152379279 (OP)
http-only атрибут на куки упустил. Ставь его и ссы на всех, кто про небезопасные куки пиздит в треде.
Аноним 05/05/17 Птн 01:58:41  152381441
>>152381290
>а сессию подделать нельзя. Причем тут куки?

Тогда зачем тебе писать логин в куки?
мы на разных языках говорим?
Аноним 05/05/17 Птн 01:58:56  152381453
>>152381364
А вот и фреймворкомакака пожаловала, которой все готовенькое подай.
Аноним 05/05/17 Птн 01:59:29  152381476
>>152381453
фатальный недостаток, понимаю.
Аноним 05/05/17 Птн 01:59:54  152381494
>>152379279 (OP)
Content-Security-Policy забыл включить.
Аноним 05/05/17 Птн 02:00:02  152381501
>>152381360
на этой фото у него непропорционально большая голова, а тело - малое.
Аноним 05/05/17 Птн 02:00:51  152381535
>>152381494
Алсо https://habrahabr.ru/company/yandex/blog/206508/
Аноним 05/05/17 Птн 02:00:54  152381540
vlcsnap-error13[...].jpg (56Кб, 792x792)
>>152381360
тут собственно сами классы

https://github.com/grigoryMovchan/auth/tree/auth_mvc/app/models
Аноним 05/05/17 Птн 02:01:28  152381564
>>152381501
а ты фашист, чтобы какие-то стандарты устанавливать на пропорции?
Аноним 05/05/17 Птн 02:01:55  152381583
>>152381501
И волос многовато для лысого
Аноним 05/05/17 Птн 02:02:38  152381624
>>152381441
потому-что:
>Авторизированным считается, когда в сессии имеется логин.

Сессия живет не долго, а мне надо, чтобы пользователь зашел на следующий день и был авторизован. Для этого в куках хранится идентификатор, при помощи которого, каждый раз, создается новая сессия
Аноним 05/05/17 Птн 02:02:41  152381626
>>152381583
Там еще и в мышцах руки какая-то хуйня изгибается, вангую синтолу вкачал.
Аноним 05/05/17 Птн 02:02:46  152381628
>>152381453
>А вот и фреймворкомакака пожаловала, которой все готовенькое подай.

А теперь погугли, что такое legacy и иди на хуй.

Ты берешь и строишь дом, используя правильные технологии\куски кода (кирпичики), если не хватает чего-то, то пишешь сам.

Я уверен, что брать код от гугла или хороший код с гитхаба ГОРАЗДО лучше, чем писать свой. Безопаснее и быстрее.

И это правильный подход, а не макакинг.

Ты делаешь сизифов труд, который никому не нужен. Даже тебе.
Аноним 05/05/17 Птн 02:03:51  152381675
>>152381628
может ему хочется понять как работают куки. не rfc же читать, это для дураков и не по-русски.
Аноним 05/05/17 Птн 02:03:54  152381678
>>152381564
нет, просто ракурс неудачный.
Я же сказал тебе НА ЭТОЙ ФОТО, а не в целом.

Аноним 05/05/17 Птн 02:04:33  152381701
>>152381628
А вот и логика фремворкомакаки. А потом такой проект начинает под твоим говнофреймворком падать, клиенты бегут к конкурентам, а макака съебывает в другую фирму пилить дальше свое говно и рассказывать про чудо код с гитхаба.
Аноним 05/05/17 Птн 02:05:25  152381741
>>152381701
может начинает падать, а может и нет. а судя по уровню оппоста, там дело даже до падания не дойдет.
Аноним 05/05/17 Птн 02:05:53  152381759
>>152381675
>может ему хочется понять как работают куки
тогда он читал бы документацию.
А тут он спрашивает, что писать, что нет.
Конечно, он может делать это для обучения, но гораздо лучше посмотреть хороший код, прочитать его и понять, а не тред создавать и часами сидеть, ковыряя велосипед.
Аноним 05/05/17 Птн 02:07:10  152381811
>>152381628
Не согласен. Я неплохо разобрался со многими вещами, пока писал авторизацию-велосипед.

А вот перед этим делал проджект на ларавел https://github.com/grigoryMovchan/zuihitsu Да, авторизация из коробки, свой уровень абстракции для любого пука, да, в итоге, все работало, но для меня это было магией, а код кромешный пиздец.

>>152381360-кун
Аноним 05/05/17 Птн 02:08:11  152381850
>>152381701
>А потом такой проект начинает под твоим говнофреймворком падать

не начинает.
Ведь там есть кэширование.
Там есть отладчик, и ты можешь смотреть, какие места долгие и фиксить это.

Использовать фреймворки правильно.
Если тебе нужна авторизация - тебе нужен фреймворк.
Аноним 05/05/17 Птн 02:08:47  152381864
>>152381741
>судя по уровню оппоста
а что в уровне ОП поста не так?
Аноним 05/05/17 Птн 02:13:06  152381987
>>152381811
> да, в итоге, все работало, но для меня это было магией, а код кромешный пиздец.

Ну смотри. Если ты используешь API - то тебя не волнует чужой код. Если ты работаешь в команде - та же история. Тебе дают некие "концы", за которые ты цепляешься и пишешь дальше. То же самое фреймворк.

Писать вообще всё с нуля - плохо, я считаю.
Аноним 05/05/17 Птн 02:14:29  152382041
>>152381850
Кек, ты явно так и не разобрался, как профайлинг в своем коде делать.
Использовать фреймворки - неправильно, фреймворк это костыль, который тянет за собой гору зависимостей, жрет память и топит скорость. Правильно знать, как и что реализуется. Решения все достаточно типовые, когда знаешь что и как делать. Один раз разобрался, сделал грамотно - без проблем юзаешь в каждом проекте и ссышь на макак с фреймворками.
Аноним 05/05/17 Птн 02:15:32  152382073
>>152379279 (OP)
Если утечёт бд -> утечёт все хеши, которые в твоём случае = кукам, что приведёт полной компрометации всех пользователей. Разбери стандарт оауф2 и посмотри как это реализовано там.
Аноним 05/05/17 Птн 02:15:34  152382079
> сделал грамотно - без проблем юзаешь в каждом проекте и
> ссышь на макак с фреймворками.
вот сейчас хорошо было.
Аноним 05/05/17 Птн 02:17:58  152382161
>>152382041
нет. Если тебе нужна авторизация, то нужен и личный кабинет и прочая хуйня типа редактирования хуй пойми чего.
И в этом случае ты напишешь свой костыль, вместо испоьзования готовых безопасных фреймворков.
Аноним 05/05/17 Птн 02:20:12  152382225
>>152382161
Кек, да ты явно и роутер свой с диспатчером написать не сможешь. Согласен, тебе - юзать фреймворки только.
Аноним 05/05/17 Птн 02:21:16  152382254
>>152382225
но зачем?
Аноним 05/05/17 Птн 02:22:29  152382295
>>152382254
Сайт нагруженный делал хоть когда? Фреймворки твои летят по пизде только так. Заебешься их потом из всего кода вырезать.
Аноним 05/05/17 Птн 02:23:38  152382334
>>152382295
ой, давай только нагрузкой сейчас меряться не будем, пожалуйста.
Аноним 05/05/17 Птн 02:25:44  152382387
>>152382334
Ясно, ни разу фреймворк по кускам выдирать не приходилось. Ну под твои задачи писать свои классы и не нужно видно.
Аноним 05/05/17 Птн 02:28:24  152382461
>>152382387
если бы "мои задачи" решались "своими классами" было бы неплохо.
Аноним 05/05/17 Птн 02:29:24  152382489
>>152382387
>ни разу фреймворк по кускам выдирать не приходилос
кому ты тут пишешь это?
Если куски не используются, то они не грузят систему.
А если ты их выдираешь - значит не используются.
Аноним 05/05/17 Птн 02:29:25  152382490
Кстати, а поясните никогда не юзающему фреймворков, нахуя они нужны?

Набросал базовый каркасик, прикрутил CRM, что еще нужно? Что там за волшебные свистоперделки в этих ваших фреймворках?
Аноним 05/05/17 Птн 02:31:04  152382539
А мне поясните про эти ваши ангуляры, уии, реакты итд, нахуя они? Всегда юзал просто жс и жквери.
Аноним 05/05/17 Птн 02:31:40  152382554
>>152382539
сделай интерфейс хотя бы гмейла на jquery, потом расскажешь.
Аноним 05/05/17 Птн 02:33:30  152382600
>>152382554
А что в этом нереального? Писанины дохуя будет, правда.
Аноним 05/05/17 Птн 02:36:39  152382685
>>152382600
вопрос в том, в начиная с какого размера твоя писанина становится неуправляемой. js был языком не для больших проектов, но веб вырос и вариантов не было. поэтому нужны модули, нужна сборка, нужка архитектура клиента - компоненты, управление состоянием, управление событиями. чем это удобнее и надежнее, тем бОльший проект ты можешь собрать в кучу, заставить работать и поддерживать когда поменяются требования.
Аноним 05/05/17 Птн 02:37:36  152382704
>>152382490
>Кстати, а поясните никогда не юзающему фреймворков, нахуя они нужны?

У тебя из коробки куча готового:
безопасность
фильтрация
быстродействие
архитектура
отладчик
модульность
кэширование

и т.п.
Аноним 05/05/17 Птн 02:37:52  152382708
прикольно, что ни одна макака не знает, как же эта аутентификация работает. ну разве может такая написать хоть что-то если она абсолютно не понимает никаких принципов работы того, что желает?
Аноним 05/05/17 Птн 02:37:52  152382709
FeDkffM2BnI.jpg (17Кб, 367x287)
>>152382600
не дохуя. Грузишь аяксом то да се, без задней мысли и все
Аноним 05/05/17 Птн 02:38:23  152382718
>>152382708
*что делает?
Аноним 05/05/17 Птн 02:39:45  152382745
>>152382685
Проблемы макак опять пошли, не могущих нормально свой код структурировать. Все отлично пишется что на чистом js, что на jquery, с минимальным подключением библиотек, где надо.
Аноним 05/05/17 Птн 02:40:03  152382752
>>152382704
и ты не знаешь что там внутри и как оно работает, и вынужден читать тонну документации чтобы понять, что же правильно этому черному ящику посылать на вход, чтобы получить на выходе то что ты хочешь
Аноним 05/05/17 Птн 02:41:16  152382783
>>152382704
Это все какие-то абстракции, например "безопасность" - вообще неочем.

архитектура удобнее когда своя, а кэширование, ЧПУ и т.д. - вещи не сложные, которые можно за час всунуть в свой каркасик пидорасик. Зато ты знаешь че где и как, а когда берешься за фреймворк - то пердак на орбиту улетает от того, что хз что где и как
Аноним 05/05/17 Птн 02:41:39  152382792
>>152382752
гораздо лучше свой велосипед: авторы ничего не помнят, документации нет вообще, используется во всем интернете ровно в одном месте - гарантированно нет никаких багов и на so ответ на любой вопрос.
Аноним 05/05/17 Птн 02:42:57  152382820
>>152382745
конечно, задач ведь больше никаких нет, кроме как код структурировать.
Аноним 05/05/17 Птн 02:44:42  152382860
>>152382752
Там еще и безопасности часто нет. Не раз случаи бывали, как подключенный фреймворк через гору заюзанных зависимостей постил в твиттер сообщения, когда его подключали. Авторы фреймворка и не в курсе были, лол. А уж если баг трекер любого фреймворка открыть, там вечно гора претензий и тикетов, не решенных с 3-5х летней давности, причем авторы пишут мол так и надо, решать не будем.
Аноним 05/05/17 Птн 02:46:21  152382887
>>152382860
хорошо когда ты знаешь как надо, и все тикеты у тебя решены. а главное без дела не останешься, когда еще раз с нуля все перепишешь.
Аноним 05/05/17 Птн 02:56:56  152383118
ОП, можешь в БД писать еще частично (без версии) User-Agent, какая-никакая доп. защита, если спиздят куки
Аноним 05/05/17 Птн 03:31:09  152383853
поясните как так выходит что в md5 длинный текст становится коротким?
Аноним 05/05/17 Птн 03:48:37  152384187
>>152383853
как так выходит, что последняя цифра длинного числа короткая?
Аноним 05/05/17 Птн 03:51:00  152384235
>>152379279 (OP)
Сейчас бы хранить логин в куках.
Аноним 05/05/17 Птн 03:53:37  152384290
>>152379279 (OP)
Если сайт не на коленке делаешь, и защита действительно нужна делай по телефону.
Аноним 05/05/17 Птн 04:00:36  152384426
.jpg (76Кб, 334x500)
>>152379279 (OP)
> авторизацию или аутентификацию, похуй

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

0. Записывай любой идентификатор пользователя, храни его только на сервере. Идентификатор сессии можешь хранить в куке.

1. Если он поставил галку, то создай запись на сервере с рандомным идентификатором (GUID подойдет) и в этой записи укажи, что это за пользователь. Никакой хеш не нужен.

2. Только если нет сессии. Делаешь это в тот момент, когда тебе надо определить - послать клиента в окно пользователя или в окно аутентификации.

3. См. 1. Если уникальный идентификатор имеет соответствующую запись на сервере - читаешь её. Если куки содержит идентификатор несуществующей записи - стираешь куки и перенаправляешь пользователя на страницу авторизации.



Аноним 05/05/17 Птн 04:02:39  152384470
>>152384426
> страницу авторизации

Аутентификации. Похуй.
Аноним 05/05/17 Птн 05:42:22  152385834
>>152379279 (OP)

пили OAuth
Аноним 05/05/17 Птн 09:07:20  152389957
>>152379279 (OP)
Не забудь пароль в БД записать, чтобы в письмах можно было слать пользователю.
Щас бы блять в 2017 году авторизацию велосипедить.
Аноним 05/05/17 Птн 09:13:17  152390191
>>152382783
>Зато ты знаешь че где и как
Ровно 3 месяца. Потом уже нихуя не знаешь и всё время лазишь в код смотреть. Нахуй это говно нужно.

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 75 | 5 | 18
Назад Вверх Каталог Обновить

Топ тредов
Избранное