Защита вызовов API OData от подделки данных изнутри внутренним пользователем - PullRequest
0 голосов
/ 02 октября 2018

Вопрос о секьюритизации вызовов API OData в приложении SAPUI5.

В прежней системе, когда пользователь успешно прошел авторизацию, можно отправить запрос с идентификатором пользователя и требуемыми данными непосредственно изна стороне клиента API OData без какой-либо дополнительной проверки безопасности на стороне сервера.

Меня беспокоит то, что любой авторизованный пользователь в системе может вести себя как троян, теоретически подделывая свой собственный идентификатор пользователя и выполняя некоторые действия вимя другого пользователя.Что касается смягчения, существует возможность инкапсулировать API OData со стороны клиента путем введения оболочки на стороне сервера, которая будет выполнять аутентификацию отправителя перед пересылкой запроса в API OData.

Вопрос в том,на платформе SAPUI5 уже есть несколько готовых подходов для обеспечения безопасности использования API-интерфейса OData, чтобы гарантировать, что отправитель запроса не может подделать идентификатор пользователя и что-то сделать в системе под другим именем.

1 Ответ

0 голосов
/ 04 октября 2018

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

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

Я составлю несколько примеров запросов.

/UserData('ALICE')
/UserData('BOB')

Реализация сервиса должна проверить, разрешено ли запрашивающему пользователю получать данные.Например, Алиса получит данные для первого запроса и 404 для второго запроса.Боб наоборот.Суперпользователь может получить данные для обоих.

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

Итог: сервис должен проверить, разрешен ли пользователю доступ к данным.

...