Denis Gladkikh
Russian   |  English

Выбранный тег: Security

Решаем задачу «Если оплачен один аккаунт, как не дать работать двум юзерам»

Пару дней назад Петя Диденко у себя в твиттере задал вопрос, как решить достаточно распространенную задачу «Если оплачен один аккаунт, как не дать работать двум юзерам», ну и получил он огромную пачку ответов, среди которых был и мой самый простой вариант решения проблемы. Распишу сначала свое решение поподробнее, прежде чем двигаться дальше: в соглашении данной услуги пишем, что пользоваться услугой может только человек, на которого зарегистрирован аккаунт, если будут замечены случаи передачи аккаунта третьим лицам, то аккаунт будет заблокирован без возможности возврата денежных средств (особо юридические текста я писать не умею, но смысл должен быть понятен). То есть пункт в договоре есть, читать, правда, его все равно никто не будет, но мы предупредили. Дальше ведем список активных сессий и просто следим, что при попытке зайти под определенным аккаунтом, если активна другая сессия с этим же аккаунтов, то просто предыдущую сессию затирать, в результате чего человека с предыдущей сессией просто выкинет на страницу авторизации. Ну и соответственно все такие вещи стоит записывать в лог, из которого иногда выдирать те аккаунты, у которых часто происходит этот такой обрыв сессий – и их уже анализируем. Сессии пускай имеют timeout по 30 минут, если меняешь компьютер, с которого используешь этот аккаунт с домашнего на рабочий, скорее всего, столько времени и нужно, чтобы добраться до работы, и сессия просто оборвется, потому наше правило на этот случай не будет распространяться. Решение предельно простое, и никак не напрягает правомерных пользователей.

Давайте теперь рассмотрим другие варианты, которые были предложены Пете, и, со всем уважением к Пете, подумаем, почему им выбранный вариант не так уж и хорош.

Кстати, хочется заметить, что это опять разговор на тему Мнимая безопасность VS юзабилити, которую я недавно поднимал уже.



Мнимая безопасность VS юзабилити

Недавно стал клиентом одного Банка (как показывает практика лучше «не переходить на личности», так как считается рекламой/антирекламой). У этого банка, как и у многих других, есть интернет-сервис для слежения за счетами и еще чего-нибудь. Так вот, меня поразило безумно неудобная аутентификация. Для того, чтобы войти в систему интернет-банка нужно ввести номер карты, что не является проблемой, и кроме того специальный код, который выдает вам банк, это число в 16-ричной системе, о чем достаточно просто догадаться по наличию слов-цифр в нем, ну и оно не маленькое, около 16 букв/цифр. Так вот, с какого-то момента я владею слепой печатью (а кто нет? ;) ), и, ну честно, не хочу вводить никакие коды при помощи тыканья кнопочек в каком-нибудь интерфейсе. А чтобы ввести этот код мне предлагается такая вот клавиатура при помощи Java аплета...



Пишем свою систему логирования при помощи WCF

Предположим у нас есть задание: написать систему логирования, которая в реальном времени отсылает логи слушателям, причем информация может быть конфиденциальная и нужно избежать возможности кражи информации.