在我的应用程序中,我必须提供只想显示给登录用户的巨大安全文件(svg 图纸等)。文件没有太大变化,如果有,它确实有不同的 url,所以我想在谷歌应用引擎上使用边缘缓存来更快地加载到已经登录的用户。
我的问题是,我如何使它安全?即,如果用户注销并且其他人使用他的浏览器,他可以看到该内容吗?如果是这样,我该如何预防?
相关:如何防止浏览器记住我网站上内容的 url。
在我的应用程序中,我必须提供只想显示给登录用户的巨大安全文件(svg 图纸等)。文件没有太大变化,如果有,它确实有不同的 url,所以我想在谷歌应用引擎上使用边缘缓存来更快地加载到已经登录的用户。
我的问题是,我如何使它安全?即,如果用户注销并且其他人使用他的浏览器,他可以看到该内容吗?如果是这样,我该如何预防?
相关:如何防止浏览器记住我网站上内容的 url。
一种解决方案可能是使用带有 ACL 的 Google Cloud Storage,即只有特定的登录用户才能访问该文件。但是,此解决方案仅限于 Google 帐户。
更新:谷歌云存储现在有一个短暂的签名 URL:
“...您可以向用户提供一个签名的 URL,这将允许用户在有限的时间内访问该资源。知道该 URL 的任何人都可以在有限的时间内访问该资源。(您在查询中指定到期时间要签名的字符串。)” - 因此,这可能更接近您的需要。
另一个解决方案是您从动态处理程序中提供巨大的文件。然而,这将消耗大量的 CPU 和带宽。此外,您仍然会受到GAE 配额的限制。
相关:您不能阻止浏览器记住访问过的 URL 或任何其他类型的历史记录。它仅取决于特定的浏览器和用户偏好(您的应用程序/javascript/whatever 无法访问)。您唯一可以询问用户的是在他们注销时清除他们的历史记录、cookie 等。
您可以在 appconfig 中设置过期时间
抱歉,我只有一个德语链接(试试看,也许谷歌会切换到你的语言) http://code.google.com/intl/de-DE/appengine/docs/java/config/appconfig.html
只要没有过期,浏览器就可以在本地缓存文件。这导致加载时间很短。但是,如果缓存太小,浏览器会再次请求该文件。
一个好的浏览器只会为登录用户提供安全文件。但是,您无法保证正在使用哪个浏览器。您的用户可以随时下载安全文件并将其发布到任何地方。
当用户将登录信息授予第三用户时,他们可以始终访问受保护的文件。
我认为您无法避免记住任何链接。在某种程度上,它与上述矛盾。