Google App Engine - загрузка блобов и аутентификация - PullRequest
0 голосов
/ 28 апреля 2010

(Я пытался спросить об этом на форумах GAE, но не получил ответа, поэтому пробую здесь).

В настоящее время для загрузки больших двоичных объектов служба хранилища больших двоичных объектов приложения создает уникальный URL времени, на который пользователь может публиковать BLOB-объекты. Мое требование, чтобы я только Я хочу, чтобы аутентифицированные / авторизованные пользователи публиковали блобы в моем приложении. В настоящее время я могу добиться этого, если в моем приложении есть страница с многочастной формой для загрузки больших двоичных объектов.

Однако я хочу предоставить своим пользователям «REST API» для загрузки своих блобов. Хотя это правда, что одноразовый характер URL-адреса для загрузки снижает вероятность мошеннического использования, но это все же возможно.

Мне было интересно, есть ли здесь кто-нибудь из команды разработчиков приложений, который может рассмотреть возможность, с помощью которой разработчики могут зарегистрировать слушателя загрузки. (Или, если уже есть способ, я буду все уши). Стандартный фильтр сервлетов также может выполнять эту работу. Это даст нам возможность аутентифицировать / проверять / оформлять запросы до того, как запрос будет перенаправлен в службу хранилища BLOB-объектов.

Спасибо, Кейур

Ответы [ 3 ]

1 голос
/ 28 апреля 2010

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

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

0 голосов
/ 28 февраля 2012

Теперь вы можете загрузить файл с API Blobstore, проверьте здесь: http://code.google.com/appengine/docs/java/blobstore/overview.html

0 голосов
/ 15 июня 2010

Я не уверен, будет ли это работать (т. Е. GAE может не позволить вам это сделать), но фильтр сервлета, который обертывает шаблон / _ah / upload, может сначала проверить, пришел ли POST с того же IP-адреса, что и аутентифицированный клиент .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...