Безопасно ли получать доступ / обновлять хранилище BLOB-объектов Azure из браузера, используя токен SAS? - PullRequest
0 голосов
/ 08 января 2019

Я пытаюсь загрузить файлы из Javascript в хранилище BLOB-объектов Azure с помощью токена SAS. Токен SAS имеет разрешение на создание / удаление / обновление большого двоичного объекта. Безопасно ли совместно использовать токен SAS со всеми этими разрешениями, указав срок его действия?

Или вместо того, чтобы предоставлять токен пользователю, я должен создать API для загрузки файла и позволить javascript вызвать тот API (приложение .NET), который будет загружать файл в хранилище BLOB-объектов. Таким образом, у меня будут проблемы с производительностью, поскольку мой размер файла может быть не более 10 МБ.

Как лучше для этого?

Ответы [ 3 ]

0 голосов
/ 08 января 2019

Да, вы можете получить доступ / обновить хранилище BLOB-объектов Azure из браузера, используя токен SAS. Однако вы предоставляете слишком много полномочий , чтобы кто-то мог удалить ваш блоб, если вы не знаете, что небезопасно.

Я полагаю, что вы можете изменить разрешение SAS на Create/Read/Write, если хотите получить доступ и обновить хранилище BLOB-объектов.

0 голосов
/ 08 января 2019

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

Если вы - те, кто записывает данные в учетную запись хранения, сделайте это на стороне сервера. Конечно, вы могли бы запросить у своего переднего конца токен SAS от внутреннего интерфейса. А токен SAS может использовать кратковременное время истечения. В конце концов, вы по-прежнему открываете части учетной записи хранения для всех, кто может получить доступ к веб-интерфейсу.

С краткосрочным истечением, даже если SAS скомпрометирован, он действителен только в течение короткого времени. Эта практика особенно важна, если вы не можете ссылаться на сохраненную политику доступа. Ближайшие сроки истечения также ограничивают объем данных, которые могут быть записаны в большой двоичный объект, ограничивая время, доступное для загрузки в него

Источник: Использование подписей общего доступа (SAS)

Если у вас есть проблемы с размером файла для загрузки, посмотрите на chunked upload . В зависимости от типа внешнего интерфейса, который вы создаете, существует множество решений для загрузки по частям, например ngx-uploadx для Angular.

0 голосов
/ 08 января 2019

Выполните операцию CRUD в хранилище BLOB-объектов на уровне API с использованием первичного или вторичного ключа, SAS не рекомендуется использовать со всеми разрешениями из браузера

...