Не могу понять концепцию безопасности в REST API - PullRequest
0 голосов
/ 27 декабря 2018

Я использую Microsoft graph API.Я успешно использовал токен аутентификации.Чтобы загрузить файл, я делаю запрос (с токеном в заголовке) на https://graph.microsoft.com/v1.0/me/drive/items/{item_id_here}/, чтобы затем получить @microsoftgraph_downloadurl.Затем я могу перейти к этому URL без заголовка авторизации, и в документации говорится, что эта ссылка является только временной.

Мой вопрос, хотя ссылка временная, не слишком ли она небезопасна?Почему я не могу просто написать сценарий для проверки случайного @microsoftgraph_downloadurls, пока он не попадет в один из них в этом временном окне, и я украду чей-то документ?

Использует ли алгоритм размер случайного пространства сгенерированного URL-адресав качестве меры безопасности?

Ответы [ 2 ]

0 голосов
/ 29 декабря 2018

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

Для большинства разрешений также требуется согласие администратора для получения доступа.И если это мультитенантное приложение, почти для всех запросов требуется согласие администратора.

И если вы не получаете токен доступа от своего пользователя, а как «контекст приложения» вместо делегированного доступа, он будетдовольно легко отследить его до вас.

Также: предоставленный адрес https://graph.microsoft.com/v1.0/me/drive/items/{item_id_here}/ содержит «/ me», и вы будете пытаться только украсть ваши собственные документы или документы, к которым у вас уже есть доступ, вOneDrive: -)

0 голосов
/ 27 декабря 2018

У них есть механизмы, предотвращающие грубое форсирование (или угадывание ссылки).

И ссылка действительна только в течение определенного времени, поэтому они, вероятно, кодируют максимальный временной интервал в URL.

...