Безопасно ли выставлять URL-адрес Bucket в веб-приложении? - PullRequest
1 голос
/ 26 февраля 2020

Хорошо. Вот мой сценарий.

У меня есть приложение-нод, куда пользователи могут загружать свои фотографии профиля. Когда пользователь загружает изображение, оно сохраняется в корзине Google Cloud Storage, и я сохраняю URL-адрес изображения в своей базе данных.

При извлечении изображения для отображения в моем интерфейсе безопасно ли выставлять URL к ведру напрямую? Как взамен пути к хранилищу, предоставленного мне GCP Cloud Storage, и разрешить моему интерфейсу использовать этот URL? Или я должен сделать что-то, чтобы замаскировать / скрыть URL по соображениям безопасности?

Если так, как я могу go об этом?

Очевидно, я не хочу, чтобы кто-то просто играть с различными возможными идентификаторами и, возможно, получить доступ к изображениям профиля других пользователей. Итак, как мне go скрыть URL?

1 Ответ

1 голос
/ 27 февраля 2020

Вам стоит взглянуть на подписанные URL-адреса . Они хороши для этого варианта использования.

Ваше ведро должно быть обязательно заблокировано в GCP IAM. Ваш сервер приложений должен иметь доступ к корзине через роль IAM, которая включает возможность создания подписанных URL-адресов для пользователей. Затем ваш клиентский код может использовать этот URL для доступа к объекту (ам) непосредственно из облачного хранилища.

Имейте в виду, что пользователи по-прежнему смогут видеть URL-адрес корзины и объекта, но это не имеет значения, поскольку в этом проекте разрешение IAM корзины не дает им прямой доступ. Они смогут получить доступ только к указанным c объектам с ограниченным по времени подписанным URL. Только ваши серверы будут иметь доступ для чтения / записи корзины напрямую.

...