0
<< предыдущая заметкаследующая заметка >>
21 июля 2010
Вопросы по авторизации

Итак, у нас имеются на сегодняшний день следующие технологии хранения авторизации на машине клиента:
1. Традиционные куки
2. Псевдокуки flash
3. Псевдокуки html5

Что-то из этого (или всё) может быть у клиента отключено. На данный момент движок проводит авторизацию только по кукам (пытаясь их восстановить в случае утери через п. 2 и 3). Но правильно ли это? А если у посетителя отключены куки, но присутствует все остальное? Он же может продолжать хранить свою авторизацию, учитываться в счетчиках, участвовать в голосования, писать комменты под одним и тем же номером unic.

Поэтому я собираюсь доработать процедуру авторизации таким образом, чтобы в случае отключенных кук машина клиента, уже получив готовую страницу, выудила свой unic из кэша 2 и 3 типа и сделала следующее:
а) Подавала серверу аяксом сигнал о посещении страницы для статистики.
б) Нарисовала сама недостающее имя и unic в поле «ваш логин» на странице.
в) При действиях клиента (комментариях и т.п.) передавала аяксом его unic вместе с стальными данными, поскольку куки сервер, как мы выяснили, не читает.

Но для этого желательно (неуверен, но по первым прикидкам — да), чтобы парольная строка авторизации отдавалась прямо в теле страницы среди javsscript. Типа:
var unic='1234-F534DG5A56B7D870DF6A8B';

А я почему-то этого боюсь. Ну, понятно, что те же самая строка авторизации хранится в куках, и украсть ее из JS — плевое дело. Но для этого надо запустить чужеродный JS на пей странице. А вот как с текстом страницы?

Разум подсказывает, что никто посторонний не сможет выдернуть из тела страницы посетителя никакую информацию. Даже загнав ее в iframe (насколько я помню, доступ к содержимому iframe от ДРУГОГО сайта запрещен во всех браузерах). По пути через серверы тоже никто посторонний не прочтет страницу (умел бы читать — прочел бы куки).

Но сердце беспокоится — вот так открыто вносить авторизацию в тело отдаваемой страницы.

Как вы думаете? Есть ли какая-то уязвимость в этом?

<< предыдущая заметка следующая заметка >>
пожаловаться на эту публикацию администрации портала
архив понравившихся мне ссылок
Оставить комментарий
Windows
0
0
Леша
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Какая-то уязвимость есть. Только врятли кто-то будет что-то специальное строить чтобы этим воспользоваться.
Отличие в том, что страница может осесть в кеше прокси/компа или ее могут сохранить в виде файла на диске.
Далее все зависит от того на что завязана авторизация кроме этой строки - версию броузера, ip .... - для того чтобы можно было или нет этим воспользоваться.
Кстати, тот же html5 хранит данные на диске совершенно не защищая от утаскивания. Хотя может это в будущем и изменится.

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

При кривых настройках кеширования на корпоративном прокси может одному пользователю отдаться страница, созданная для другого пользователя и того залогинет. :)
Nokia-E90 Safari
 Москва
0
0
LLeo Nokia
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Ну, залогинит - вряд ли.
Linux Ubuntu Firefox
 Зеленоград
1
0
Д.С.
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
А что будет, если через обычные куки и эти вот псевдокуки прилетят на сервер авторизационные данные от разных людей?
Nokia-E90 Safari
 Москва
1
0
LLeo Nokia
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
А сервер при чем? Что будет если милиционеру в Казани и в Муроманске два человека одновременно покажут паспорт с одним номером?
Linux
0
0
Д.С.
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Простите, возможно, я не совсем корректно сформулировал вопрос. Более корректная формулировка, наверное, звучала бы как-то так:
- в том случае, если сервер не получил обычного кукиса, то он будет пытаться вытащить данные об авторизации из псевдокукисов, которые вы указали выше. Что будет, если unic есть и в html5- и во flash- кукисах, и он там и там разный?

Или так:
- что будет, если браузер вместе с отправленным аяксом запросом, о котором вы писали в третьем абзаце, отправит вдруг и обычный кукис с другим unic?
Linux Safari Chrome
 Москва
1
0
LLeo
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Там сложный алгоритм и последовательность. И два этапа проверки - потому что флэш не стартует сразу. Нет смысла так подробно рассказывать.
Linux
0
1
Д.С.
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Благодарю.
Windows Safari Chrome
1
0
alexey_bobkov
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Леонид, когда я логинюсь по openid (alexeybobkov.livejournal.com), я не могу ни оставлять комментарии, ни отвечать - окно редактирования не выскакивает. +/- тоже не ставится. Сейчас зарегистрировался под другим именем без openid и пробую послать сообщение. Надеюсь, это не новая фича а-ля увеличенная каптча :) Если что-то сломалось, могу, например, послать код страницы, которая мне приходит, или сделать что-то ещё, что попросите (на известное всем место вашего сайта просьба не посылать!).
Linux Safari Chrome
 Москва
1
0
LLeo
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Это очень странно. А так всегда было или после моих позавчерашних переделок?

PS: У меня в блоге вообще нет функции бана.

PS: В любом случае буду благодарен, если пришлете ошибки JavaScript, которые возникают после попытки что-то сделать. Уверен, что они возникают.
Windows Safari Chrome
0
0
alex_bbkv
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Я там послал ответ по почте.

Может ли быть, что дело в этой строке? В ней внутри текстовых кавычек таг [a href=...] [/a]

var realname=...

alexey_bobkov
Windows IE
0
0
Вини-тот-самый
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Леонид, та же проблема, что и alexey_bobkov
Последняя успешная запись от меня 2010-07-20 22:30

также не работает кнопка "читать комментарии (всего ХХ шт.)" в тех постах, где они свёрнуты.
Linux Firefox
 Москва
1
0
LLeo
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Обновите и попробуйте сейчас.
Windows Firefox
0
0
vinny-the-poo
Тьфу, не туда первый раз коммент сунул. Одурел к концу рабочего дня. Всё работает. Спасибо!
Windows IE
0
0
Вини-тот-самый
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Это я был, vinny-the-poo.
Добавлю, что авторизация будто-бы проходит успешно. В поле "ваш логин", в приветствии "всё верно", а вот действия не отрабатываются.
Windows Firefox
0
0
dimmik
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
А вот у меня комментарии не отправляются вообще.
(Если этот отправится - слава аллаху)
Нажимаешь на send, оно покрутится-покрутится и перестает.
Linux Firefox
 Москва
0
0
LLeo
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
А сейчас?
Windows Firefox
0
0
dimmik
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Упс, оно таки отправилось.
Я был в полной уверенности что и тот тоже не отправился. Окошечко не закрылось, по крайней мере.
Windows Firefox
0
0
dimmik
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
И опять оно не закрылось. Пошел ли коммент на сервер - уже и не знаю...
Windows Firefox
0
0
dimmik
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Пошел. :)
Windows Firefox
0
0
vinny-the-poo
Всё работает. Спасибо!
Windows Firefox
0
0
dimmik
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
еще тест - та же фигня. Коммент отправляется, окошко не закрывается, контент страницы не обновляется.
При редактировании все ок.
Linux Firefox
 Москва
0
0
LLeo
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Попробуйте потереть кэш браузера - возможно там остались старые версии скриптов.
Windows Firefox
0
0
dimmik
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Пробую
Вроде потер кеш - все равно не закрывается окошко если новый коммент.
Windows IE
1
0
alexeybobkov
О, вы её починили, пока я спал!
Windows Opera
 Европа
1
0
Monstradamus
Леонид, в Опере и Огнелисе в форме нового комментария в текстовом поле теперь вылезает "null". В Хроме все в порядке.
Windows Safari Chrome
0
0
tupitochka
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
да, раньше такое было, видел. Теперь уже не вижу.
Windows Firefox
0
0
Andrew N Golovkov
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
var unic='1234-F534DG5A56B7D870DF6A8B'

или

Set-Cookie: unic=1234-F534DG5A56B7D870DF6A8B

Какая разница-то? И так и так злоумышленник практически одинаково может получить эту строку.

всего комментариев: 27

<< предыдущая заметка следующая заметка >>