ndb.BlobProperty против BlobStore: что более приватно и безопаснее

Я читал весь стек о хранилище данных и хранилище blobstore для хранения и извлечения файлов изображений. Все указывает на blobstore, кроме одного: конфиденциальность и безопасность.

В хранилище данных фотографии моих пользователей являются частными: я полностью контролирую, кто получает BLOB-объект. Однако в магазине blobstore любой, кто знает URL-адрес, может получить доступ к фотографиям моих пользователей? Это правда?

Вот цитата, которая должна успокоить меня, но она все еще не ясна. Значит, любой, у кого есть ключ blob, все еще может получить доступ к фотографиям? (из Store Photos в Blobstore или как Blobs в Datastore - что лучше / эффективнее / дешевле?)

способ передачи значения из Blobstore состоит в том, чтобы принять запрос к приложению, а затем ответить заголовком X-AppEngine-BlobKey с ключом. App Engine перехватывает исходящий ответ и заменяет его тело значением Blobstore, передаваемым непосредственно из службы. Поскольку логика приложения устанавливает заголовок в первую очередь, приложение может реализовать любой контроль доступа, который ему нужен. Не существует URL-адреса по умолчанию, который предоставляет значения непосредственно из Blobstore без вмешательства приложения.

Все это делается для того, чтобы задать вопрос: что более конфиденциально и более безопасно для трафика изображений и почему: хранилище данных или хранилище больших двоичных объектов? Или, эй, облачное хранилище Google (о котором я ничего не знаю)


person Katedral Pillon    schedule 21.03.2013    source источник
comment
Я также изучаю это, я думаю, что blobstore лучше всего подходит для управления доступом через обработчики или службы, которые могут иметь контроль доступа пользователей.   -  person    schedule 21.03.2013
comment
И blobstore похож на облачное хранилище из того, что я читал   -  person    schedule 21.03.2013


Ответы (2)


Если вы используете google.appengine.api.images.get_serving_url, тогда да, возвращенный URL является общедоступным. Однако возвращаемый URL-адрес нельзя угадать по ключу большого двоичного объекта, и этот URL-адрес даже не существует до вызова get_serving_url. (Или после вызова delete_serving_url).

Если вам нужен контроль доступа к данным в хранилище blobstore , вы можете написать свой собственные обработчики и добавьте туда контроль доступа.

person Anthony    schedule 21.03.2013

BlobProperty так же приватен и безопасен, как и BlobStore, все зависит от вашего приложения, которое обслуживает запросы. ваше приложение может реализовать любую проверку разрешений перед отправкой содержимого пользователю, поэтому я не вижу никакой разницы, если вы сами обслуживаете все изображения и намеренно не создаете общедоступные URL-адреса.

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

person lenik    schedule 22.03.2013