边缘缓存谷歌应用引擎上的安全内容

时间:2012-03-06 12:52:19

标签: google-app-engine caching browser-cache offline-caching

在我的应用程序中,我必须提供我想要仅向登录用户显示的大型安全文件(svg图纸等)。文件没有太大变化,如果确实如此,它确实有不同的网址,所以我想在谷歌应用引擎上使用边缘缓存,以便更快地加载到已经登录的用户。

我的问题是,如何确保安全?即如果用户退出,如果其他人使用他的浏览器,他可以看到该内容吗?如果是这样,我该如何预防?

相关:如何阻止浏览器记住网站上的内容网址。

2 个答案:

答案 0 :(得分:3)

其中一个解决方案可能是使用Google Cloud Storage with ACL,即只有特定登录用户才能访问该文件。此解决方案仅限于Google帐户。

更新:Google云端存储现在有short-life signed URLs

" ...您可以向用户提供签名的URL,以允许用户在有限的时间内访问该资源。知道URL的任何人都可以在有限的时间内访问该资源。 (您在要签名的查询字符串中指定到期时间。)" - 所以,这可能更接近你需要的东西。

另一个解决方案是您从动态处理程序中提供大文件。然而,这会消耗大量的CPU和带宽。此外,您仍然受GAE quotas的限制。

相关:您无法阻止浏览器记住访问过的网址或任何其他类型的历史记录。它完全取决于特定的浏览器和用户首选项(您的app / javascript /无法访问)。您可以向用户询问的唯一事情是在他们退出时清除他们的历史记录,cookie以及诸如此类的东西。

答案 1 :(得分:1)

您可以在appconfig

中设置过期时间

抱歉,我只有一个德语链接(只是尝试,也许谷歌切换到您的语言) http://code.google.com/intl/de-DE/appengine/docs/java/config/appconfig.html

只要未过期,浏览器就可以在本地缓存文件。这导致较小的加载时间。但是,如果缓存太小,浏览器将再次请求该文件。

一个好的浏览器只会向已登录的用户提供安全文件。 但是,您无法保证使用哪种浏览器。您的用户可以随时下载安全文件并将其发布到任何地方。

当用户向第三个用户提供登录时,他们可以一直访问受保护的文件。

我认为你不能忘记记住任何链接。在某种程度上,它与上述相矛盾。