Race Condition

Race Condition

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

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

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

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

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

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

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

Alt text

Один хакер может причинить столько же вреда, сколько 10 000 солдат! Подпишись на наш Телеграм канал, чтобы узнать первым, как выжить в цифровом кошмаре!

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

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