крайнее кэширование защищенного контента в Google App Engine - PullRequest
1 голос
/ 06 марта 2012

В моем приложении я должен обслуживать огромные защищенные файлы (чертежи svg и т. Д.), Которые я хочу показывать только зарегистрированному пользователю.Файл не сильно меняется, и если это так, он имеет другой URL-адрес, поэтому я хотел бы использовать пограничный кеш в Google App Engine для более быстрой загрузки уже зарегистрированному пользователю.

Мой вопрос: как сделатьЯ делаю это безопасно?т.е. если пользователь вышел из системы и если кто-то еще использует его браузер, сможет ли он увидеть этот контент?Если да, как я могу предотвратить это?

Связанный: Как я могу запретить браузеру запоминать URL-адрес контента на моем веб-сайте.

Ответы [ 2 ]

3 голосов
/ 15 марта 2012

Одним из решений может быть использование Облачного хранилища Google с ACL , т. Е. Таким образом, что только определенный вошедший в систему пользователь имеет доступ к этому файлу. Это решение ограничено аккаунтами Google.

ОБНОВЛЕНИЕ: Облачное хранилище Google теперь имеет недолговечные подписанные URL-адреса :

"... вы можете предоставить подписанный URL-адрес пользователю, который позволит пользователю получить доступ к этому ресурсу в течение ограниченного времени. Любой, кто знает URL-адрес, может получить доступ к ресурсу в течение ограниченного времени. (Вы указываете срок действия в строке запроса для подписи.) " - так что это может быть даже ближе к тому, что вам нужно.

Другое решение состоит в том, что вы обслуживаете свой огромный файл из ваших динамических обработчиков. Это, однако, потребляет много ресурсов процессора и пропускной способности. Кроме того, вы все равно будете ограничены квотами GAE .

Связанный: вы не можете запретить браузеру запоминать посещенные URL-адреса или любой другой вид истории. Это зависит исключительно от конкретного браузера и пользовательских предпочтений (недоступно для вашего приложения / javascript / чего бы то ни было). Единственное, что вы можете попросить своих пользователей, это очистить их историю, куки и еще много чего, когда они выходят из системы.

1 голос
/ 21 марта 2012

Вы можете установить срок действия в appconfig

Извините, у меня просто есть немецкая ссылка (попробуйте, может быть, Google переключается на ваш язык) http://code.google.com/intl/de-DE/appengine/docs/java/config/appconfig.html

Пока не истек срок действия браузера, он может кэшировать файл локально. Это приводит к небольшому времени загрузки. Однако, если кэш слишком мал, браузер снова запросит файл.

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

Когда пользователь передает логин третьим пользователям, они могут все время получать доступ к защищенным файлам.

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

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