Авторизация на cross домене


5 0

Вчера, а точнее со вчера по сегодня я поставил рекорд. Я находился на рабочем месте почти 22 часа. Началось все примерно в пол 9-го утра вчера и закончилось сегодня утром в пол седьмого. Из этого времени я работал 18 часов. Один час перерыва в общей сложности на обед и три часа сна уже под утро. Когда в 4-е часа уже не мог работать, а все основное сделал, ехать домой не стал по среди ночи а вздремнул на три часа.

Так что 18 часов с часовым перерывом это реальный рекорд. Если учесть, что раньше я на работе больше 9 часов в России и 12 часов в Канаде не работал. В принципе, меня не заставляли и даже не просили остаться. Я сам остался на ночь на время обновления сайта клиента, потому что обновление большое и большая ответственность. Если что-то не покатит, то даже если по шапке не получу, то самому будет не приятно.

Но запуск прошел вполне гладко. Только один косяк выяснили вчера в 6 часов, когда начали размножать изменения по серверам и вовремя остановились. Для авторизации используется iframe, внутри запрос к серверу необходимо отправлять используя https. Отказаться от него нельзя, потому что сайт серьезный и такие данные обязательно должны идти по защищенному каналу. А вот основная страница использует http соединение. Когда я авторизовываю пользователя внутри https, если все прошло удачно, нужно просто закрыть iframe и переадресовать пользователя на нужный раздел сайта.

Косяк в том, что JavaScript не может работать в межсайтовых средах, а https и http версия одного и того же сайта с одним и тем же доменом воспринимаются джавоскриптом как кроссдомен. Любые попытки обратиться к к главному окну из фрейма просто вырубались. Я могу понизить себе безопасность в браузере, но миллионы других пользователей не будут этого делать.

Выход нужен был срочный и он пришел практически сразу, но с проблемами. Я просто с помощью Ajax запускал два запроса серверу. Первый запрос отправляет по https данные клиента и авторизует его. Если все удачно, то будет создана сессия для пользователя и он будет считаться авторизованным. Второй запрос шел по http, который банально проверет, а авторизован ли пользователь. Если да, то первый запрос прошел удачно и можно переадресовывать без проблем. Если нет, то пошел на фиг с новым годом.


Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым


Комментарии

c++

15 Сентября 2010

Наверное очень красивая любовница.


Роман Костенко

16 Сентября 2010

Да уж. Я больше 15 часов с часом перерыва не работал. :)

Миша, судя по всему, первый пост оставила твоя жена :-D


bashq

16 Сентября 2010

Если зарплата хорошая, то можно и постараться как следует.
Михаил, чем интереснее заниматься: веб-программированием или программированием на С#?


Михаил Фленов

16 Сентября 2010

Лучше заниматься Web программированием на C#. На самом деле дестоп программирование мне нравится больше


Жена :)

24 Сентября 2010

Интересно с чего вдруг первый пост был приписан мне?  


Добавить Комментарий

Еще что-нибудь

Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне