1

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

Как я пытался решить задачу: сейчас я рассматриваю два подхода:

  1. если для получения доступа к ресурсу достаточно знать только его ID - то любой пользователь сможет получить доступ к ресурсу любого другого пользователя даже не зная учетных данных последнего. Поэтому нужно проверять - является ли данный пользователь владельцем ресурса. Для этого, помимо ID ресурса, нужно брать ещё и ID пользователя. Важно - ID пользователя НЕ указывается прямо в параметрах запроса, а зашит внутри токена доступа (JWS).
  2. идентификаторы ресурсов имеют тип UUID, и подобрать такой ID - задача очень не простая (даже если пытаться получить доступ не к конкретному ресурсу, а к случайному). Поэтому дополнительные меры предосторожности излишни и просто усложнят код. Если тип идентификаторов ресурсов - это UUID, то вполне безопасно получать доступ к ресурсу зная только его ID.

Вопрос: какой из двух подходов лучше с точки зрения безопасности и почему?

Bakuard
  • 972

0 Answers0