LINUX.ORG.RU

Для логина по веб-форме требуется как минимум один редирект - это во всех основных статьях описано, делается это для безопасности и возможности корректного сохранения адреса в «закладках». А промежуточные редиректы могут понадобиться для установки дополнительных куков и/или распределения нагрузки на несколько серверов, например.

nickleiten ★★ ()
Ответ на: комментарий от anonymous

К сожалению не найду, давно это было. Но основной посыл в том, чтоб в «закладках» в браузере не сохранялся логин-пароль (для этого пользуют POST) и для сохранения сессии по кукам, которую уже проверяют при заходе в авторизованную часть сайта без запроса логина-пароля. Плюс в адресной строке «чистый» адрес страницы остаётся (извините за тавтологию), который можно копипастить (и которая, собственно копипастится браузером при добавлении страницы в «закладки»).

Собственно для установки куков и пользуется редирект. Со стороны сервера на любой странице уже идёт предварительная проверка этих куков с последующей выдачей запроса авторизации или показа данных. То есть это чисто архитектурное решение для удобства разработки и унификации серверной части.

nickleiten ★★ ()
Ответ на: комментарий от nickleiten

Но основной посыл в том, чтоб в «закладках» в браузере не сохранялся логин-пароль

Это бред, сохранять или нет логин и пароль решает пользватель. В закладках их ни один браузер никогда не хранил.

для этого пользуют POST

Это никак не влияет на сохранение пароля.
GET для авторизации используют только неадекватные наркоманы.

для сохранения сессии по кукам, которую уже проверяют.

Нахера проверять сессию которую ты только что сам и авторизовал?

Плюс в адресной строке «чистый» адрес страницы остаётся

А с чего ему пачкаться?

который можно копипастить

Это уже какая-то волшебная ахинея. Редиректы-то тут для чего? Что мешает в параметр action формы положить чистый адрес? Копипаститься он будет ничуть не хуже.

Собственно для установки куков и пользуется редирект.

Ну кобылы сивой ахинея же.
Что мешает без редиректа куки поставить?

Со стороны сервера на любой странице уже идёт предварительная проверка этих куков

И что мешает куки отдать в ответ на успешный запрос авторизации?

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

То есть кто-то через жопу когда-то спроектировал сервис и теперь этот воз говна банк за собой тащит.

Единственное что может реально дать редирект при логине — отсутствие предложения переотправить форму при рефреше страницы.

Goury ★★★☆ ()
Ответ на: комментарий от Goury

Выше уже дали ссылки на статьи.

По вопросу куков - универсальность обработки запросов по-моему реализовать проще и быстрее, нежели городить костыли на логин-форму и обработку её без куков.

С куками любая страница/любой запрос обрабатывается скриптом универсально одной функцией, в которой идёт проверка на наличие уникального ключа и ветвлением на выдачу данных или запроса авторизации. Вместо этого, вы говорите об ахинее и предлагаете в каждой точке входа лепить франкенштейна из нейпоми чего.

ЗЫ. Не буду категоричен, давно занимался вебдевом. Возможно, что-то и изменилось за последнее время, но сомневаюсь.

nickleiten ★★ ()
Ответ на: комментарий от anonymous

создают куки, ибо нельзя создать полноценную куку, не выполнив загрузки страницы

Т.е. куки бывают полноценные и неполноценные? Это что, куки у которых не хватает хромосомы?

Куку и javascript поставить может, здесь редиректы не нужны совершенно. Более того, после отправки формы методом POST, обработка этой формы происходит до отдачи хидеров браузеру и загрузки следующей страницы. Никто не мешает (и все основные фреймворки и проекты делают именно так) установить куки в этой же сессии и не делать никаких редиректов.

ТС, приведи конкретный банк, далеко не все делают и один редирект, не то что серию.

BaBL ★★★★ ()
Ответ на: комментарий от anonymous

тогда и авторизуйся javascript-ом на клиенте без сервера...

Вы удивитесь, но в эру nodejs есть проекты, которые практически так и делают. Авторизация проходит на сервере, который возвращает токеню, а куки ставят уже на клиентской части.

BaBL ★★★★ ()
Ответ на: комментарий от getup

Альфабанк (на 2 разных урла передает логин/пароль).

Могу предположить, что у Альфы через одну форму авторизации может быть доступно несколько несвязанных между собой сервисов и дальнейший редирект идет в зависимосит от найденного клиентам (их разряда ЮЛ, ФЛ, Клик и т.д.).

Особых каких-то причин делать редиректы нет.

BaBL ★★★★ ()
Ответ на: комментарий от nickleiten

Хреново занимался значит.
Достаточно точки входа разделить на те, которым кука нужна, и на те, которым не нужна.
Но это очень сложно для жопоруких говнокодеров, да.

Goury ★★★☆ ()
Ответ на: комментарий от BaBL

Это не исключается, но клиент серверу все равно при каждом чихе должен что-то предъявить для идентификации. Выбор не велик и обычно это «серверная кука»

anonymous ()
Ответ на: комментарий от Goury

Куку и javascript поставить может

Оч плохая практика

Не плохая, просто в мире PHP и Python не распространенная, а в мире nodejs react, meteor и прочих - очень даже.

Но я то не писал что всем срочно надо куки в яваскриптах ставить. Я писал о том, что редиректы не всегда оправданы.

BaBL ★★★★ ()
Ответ на: комментарий от Goury

С точки зрения безопасности (а мы говорим об онлайн банкинге) - куки должны проверяться на каждом шагу. В этом месте должен быть включён режим максимальной паранойи. Поэтому разделять тут собственно нечего и такое решение вполне оправдано.

nickleiten ★★ ()
Ответ на: комментарий от BaBL

В чём угодно плохая.
Куки ставить надо http заголовками, а не яваскриптом.
В исключительных случаях яваскриптом можно положить в куки что-нибудь что надо хранить между сессиями и незачем отправлять на сервер.

Goury ★★★☆ ()
Ответ на: комментарий от nickleiten

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

Goury ★★★☆ ()
Ответ на: комментарий от Goury

Угу, угу. А потом удивляемся, почему денежки со счетов уплывают и как ломают эти системы без проверок. Наслышаны и «навидены» о таких горе разработчиках, ололокающих на, казалось бы, естественные и очевидные вещи.

Но это всё оффтоп, за сим, откланиваюсь.

nickleiten ★★ ()
Ответ на: комментарий от Goury

Но это очень сложно для жопоруких говнокодеров, да.

Goury ★★★ (03.01.2016 15:19:01) Срал я на PEP8 и на его рекомендации. Я пишу код так, чтобы хотелось ещё и чтобы было удобно и приятно.

Кто бы говорил.

Anakros ★★★★ ()
Ответ на: комментарий от postman_

Кек, работал на проекте, когда были древние мобилки и плохой интернет. Там не было редиректа и при запросе проверялось, не является ли запрос дублем предыдущего запроса. Так как пользователь после добваления комментария, например, мог потом нажать refresh, и комментарий бы повторился.

anonymous ()
Ответ на: комментарий от Goury

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

Для этого есть localStorage.

В чём угодно плохая.
Куки ставить надо http заголовками, а не яваскриптом.

А я считаю что на C# нельзя ПО писать, только С++

BaBL ★★★★ ()
Ответ на: комментарий от nickleiten

Угу, угу. А потом удивляемся, почему денежки со счетов уплывают и как ломают эти системы без проверок. Наслышаны и «навидены» о таких горе разработчиках, ололокающих на, казалось бы, естественные и очевидные вещи.

Мне кажется, у вас проблемы с причинно-следственной связью. В google нет никаких 10 редиректов, но есть двухфакторная авторизация и хорошие пароли и как-то никто не угонят чтот у меня мыло, если сам никому не отдам.

BaBL ★★★★ ()
Ответ на: комментарий от BaBL

Локалсторадж есть не на всех древних как говно мамонта мобильниках и некоторые вещи проще таки держать в куке.
Дальшейший бред комментировать отказываюсь.

Goury ★★★☆ ()
Ответ на: комментарий от BaBL

Вы правы, у гугла есть как минимум один редирект, как и у большинства (тех, кто не использует js обвязку для взаимодействия с сервером, да и гугл её пользует после авторизации, вебдваноль всё-таки) - именно об этом и речь была в споре. А по-поводу конкретно ОП-поста я ответил ещё в первом своём сообщении, что причина может быть или в распределении нагрузки или дополнительных куках с разных серверов. Почему и зачем - я не брался даже обсуждать, т.к. что и как там в конкретном банке реализовано - гиблое дело.

nickleiten ★★ ()
Ответ на: комментарий от nickleiten

А по-поводу конкретно ОП-поста я ответил ещё в первом своём сообщении, что причина может быть или в распределении нагрузки или дополнительных куках с разных серверов. Почему и зачем - я не брался даже обсуждать, т.к. что и как там в конкретном банке реализовано - гиблое дело.

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

По поводу распространения куки - обычно используют другой механизм. Либо пиксель с другого сервера, либо подключаемый js, который проставляет куку. В битриксе, к примеру, есть механизм spread, который так куки между сайтами распространяет. Редирект для этого не феншуй.

В конце концов, редиректы могут блокироваться и антивирусами, особенно серийные.

BaBL ★★★★ ()
Ответ на: комментарий от BaBL

Ну, это хорошо ещё, если студенты пишут. А то есть один крупный УА банк, в котором в своё время вся вертикаль набрана была «по знакомству» и/или родственным связям. Что из этого получилось - рассказывать не надо. В последствии, конечно жёсткая МЛМ практика подкорректировала структуру, но IT-сектор стал ненамного лучше.

nickleiten ★★ ()

Подкину вам ещё пару идей:
1. Есть http only куки. Он недоступны JavaScript'у. Их можно прочесть только на стороне сервера.
2. Куки подписываются.
3. В http заголовках указывается источник редиректа. Если он пуст или является левым сайтом - пользователя шлют лесом. Можно подделать.

menangen ★★★★★ ()