2014-09-17 3 views
1

Я реализую веб-приложение, в котором я разрешаю пользователю загружать туда изображения, и я собираюсь сохранить эти изображения непосредственно в облачном хранилище, и я хочу разрешить что конкретный пользователь только для загрузки или просмотра изображения, как я могу установить такое ограничение? (oauth-протокол, безусловно, не помогает, поскольку для этого требуется аутентификация базы данных google)Как запретить другим внешним пользователям загружать файлы из облачного хранилища

Я хочу, чтобы пользователь загружал изображение только через мое веб-приложение. В настоящий момент я создаю signurl со сроком действия 10 минут, но если кто-то тем временем видит сетевой трафик и уведомляет URL-адрес, после чего другой человек, использующий эту ссылку в течение этих 10 минут, может загрузить изображение. Так как я могу сделать свою систему полностью защищенной?

+1

Нельзя передать подписанный URL-адрес через SSL? – jterrace

+1

Но сетевой администратор или кто-то, кто может смотреть сетевой трафик, сможет увидеть URL-адрес, из которого я собираюсь загрузить, и если человек сможет получить этот URL-адрес во время активации, человек сможет загрузить вложение –

+1

Как сетевой администратор сможет увидеть URL-адрес? URL-адреса не передаются в текстовом виде по SSL-соединениям. – jterrace

ответ

1

Ох, так моральный характер: если мы отправим HTTPS-запрос в облачное хранилище Google, сетевой администратор или злоумышленники не смогут увидеть фактические полные URL-адреса, они смогут увидеть только IP-адрес хоста адрес, по которому будет отправлен наш запрос ...

ТАКЖЕ, если мы отправим наш запрос на адрес https://storage.googleapis.com/bucket/object? то, что на самом деле произойдет, он отправит запрос на storage.googleapis.com для безопасного HTTPS-соединения, и после того, как будет создан токен, SSL сделает свою магию и передаст оставшиеся данные URL-адреса на сервер, SO, что происходит здесь, администратор или злоумышленники будут знать, что мы посылаем запрос на storage.googleapis.com, но не будет в состоянии видеть нашу bucketName и другие вещи подписей

Итак, наш файл данные остается безопасным с загрузкой/загрузками через HTTPS соединения

Этот вопрос об обмене столами поможет мне понять немного больше https://security.stackexchange.com/questions/34794/if-ssl-encrypts-urls-then-how-are-https-messages-routed https://security.stackexchange.com/questions/20803/how-does-ssl-tls-work/20847#20847

+1

Да, точно. Удачи! – jterrace

+0

Спасибо за помощь :) –

Смежные вопросы