Запрос извлек некоторые несанкционированные данные: фильтр или блок - PullRequest
0 голосов
/ 27 февраля 2019

Я использую Spring-data-rest, но это может быть общим вопросом.Если я создаю службу REST, а аутентифицированный пользователь делает запрос REST, который извлек некоторые данные, которые не были авторизованы, должен ли быть ответ 403 или я должен отфильтровать данные, которые не были авторизованы, и отправить остальные.

ДругойСлучай может быть таким, что пользователь запрашивает данные полностью неавторизованным.В таком случае, ответ должен быть 403 или 404?

1 Ответ

0 голосов
/ 28 февраля 2019

Для GET я использую 404 и фильтрацию.Если ответ представляет собой набор сущностей, то я просто отфильтрую те, на которые у текущего пользователя нет прав READ.(Если все данные отфильтрованы, запрос является пустым набором, но он все еще в порядке.) Если ответ является одним объектом, и пользователь не имеет разрешения READ, то я возвращаю 404.

IMHOЕсли пользователь не имеет разрешения READ, он даже не должен знать о существовании объекта.(Если я верну 403, он узнает, что существует объект с таким идентификатором.)

Я верну 403, только если у пользователя есть READ, но нет разрешения UPDATE / DELETE, и он пытается манипулировать данными.

Кроме того, если он пытается удалить несколько объектов, я удаляю только те, на которые у него есть разрешение DELETE, и беззвучно пропускаю остальные.

Я создал Spring-Data-Rest ACLрасширение , которое автоматически обрабатывает все эти проблемы на всех автоматически генерируемых конечных точках (+ намного больше), если вы заинтересованы.

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