Race Condition

6695
Race Condition

В техниках безопасного программирования есть такое понятие, как Race Condition. Перевожу сразу из учебника:

Две инструкции из разных потоков пытаются получить доступ к одним и тем же данным одновременно. Когда разработчик пишет приложение, потоки данных должны быть запрограммированы на последовательный доступ к данным. Сразу приводится пример:

Два футбольных фаната покупают билеты на финал Суперкубка. Когда они приходят на стадион, они обнаруживают, что проданные им билеты одно и то же место. Это большая прибыль для тех, кто продает билеты, но плохая ситуация для тех, кто покупает билеты.

В банковской отрасти это может означать, что нужно отслеживать выполнение распоряжений клиента, исходящих их разных мест. Например, в каждом банке (брокере, страховой компании, и т.д.) есть web-кабинет и мобильное приложение. Разумно сделать контроль сессий клиента, чтобы в единицу времени активной была только 1 сессия. Некоторые банки давно имеют такой контроль, а некоторые нет. Реализации могут быть следующими:

- при открытии второй сессии, пишется ошибка, что сессия клиента уже существует;

- при открытии второй сессии, первая сессия автоматически закрывается.

Этот контроль сделать несложно, так как чаще всего разные виды ДБО для клиентов - это лишь разные интерфейсы, ведущие к общей прикладной части и далее к общей БД.

Alt text
Обращаем внимание, что все материалы в этом блоге представляют личное мнение их авторов. Редакция SecurityLab.ru не несет ответственности за точность, полноту и достоверность опубликованных данных. Вся информация предоставлена «как есть» и может не соответствовать официальной позиции компании.
29.10 ●Вебинар · 29 октября · 11:00Как поймать атаку до ущерба?Гарда Deception 2.3: новые ловушки, безагентные приманки и демо сценариевРегистрируйтесь на вебинар → Реклама. ООО «Гарда Технологии», ИНН 5260443081. 16+

Евгений Шауро

Блог специалиста по информационной безопасности