CloudFront 签名 URL 破坏客户端缓存
CloudFront signed URLs break client caching
我计划使用 CloudFront 作为我网站的服务器缓存,由 singed URLs 保护。使用签名 URLs 的原因是只允许经过身份验证的用户访问内容。
然而,我的网络应用程序也需要在客户端使用缓存。现在,由于已签名的 URL 只会在短时间内有效,然后会生成一个新的,这将破坏客户端的缓存。虽然客户端会收到相同的资源,但它会有一个新的签名URL,客户端浏览器将无法从缓存中获取它。
我想对长期存在的资源使用具有短期有效期的签名 URL 的原因之一是可以控制传输的数据。在最好的情况下,这些资源缓存在客户端。如果没有,它们将缓存在 CloudFront 上,CF 将传送它们并节省我的 Web 应用程序服务器的资源。但是我想防止攻击者从 CF 中大量下载资源并给我带来额外的成本。
有没有办法使用签名 URLs 以外的其他方式来保护对 CloudFront 资源的访问?例如,一件好事就是签名的 cookie。客户端会在 webapp URL 上请求资源,而 webapp 会 return 重定向到该资源的长期 CF URL 但检索资源只能通过具有短期有效期的签名 cookie。客户端仍会看到长 URL 并可以缓存资源,但资源只能在短时间内用于下载。
我不想弄乱 IP 地址,因为它们不可靠,通常一个 IP 后面可能有很多用户等等。
是否有类似的东西可以克服已签名 URL 的本地缓存限制?
如果资源中没有真正机密的内容,我可能不会费心亲自签名。但是既然你有这个要求,你可以使用 signed cookies.
这些既可以限制时间,也可以限制范围。因此,您可以授予对 at 特定 URL 子集的访问权限。
我计划使用 CloudFront 作为我网站的服务器缓存,由 singed URLs 保护。使用签名 URLs 的原因是只允许经过身份验证的用户访问内容。
然而,我的网络应用程序也需要在客户端使用缓存。现在,由于已签名的 URL 只会在短时间内有效,然后会生成一个新的,这将破坏客户端的缓存。虽然客户端会收到相同的资源,但它会有一个新的签名URL,客户端浏览器将无法从缓存中获取它。
我想对长期存在的资源使用具有短期有效期的签名 URL 的原因之一是可以控制传输的数据。在最好的情况下,这些资源缓存在客户端。如果没有,它们将缓存在 CloudFront 上,CF 将传送它们并节省我的 Web 应用程序服务器的资源。但是我想防止攻击者从 CF 中大量下载资源并给我带来额外的成本。
有没有办法使用签名 URLs 以外的其他方式来保护对 CloudFront 资源的访问?例如,一件好事就是签名的 cookie。客户端会在 webapp URL 上请求资源,而 webapp 会 return 重定向到该资源的长期 CF URL 但检索资源只能通过具有短期有效期的签名 cookie。客户端仍会看到长 URL 并可以缓存资源,但资源只能在短时间内用于下载。 我不想弄乱 IP 地址,因为它们不可靠,通常一个 IP 后面可能有很多用户等等。
是否有类似的东西可以克服已签名 URL 的本地缓存限制?
如果资源中没有真正机密的内容,我可能不会费心亲自签名。但是既然你有这个要求,你可以使用 signed cookies.
这些既可以限制时间,也可以限制范围。因此,您可以授予对 at 特定 URL 子集的访问权限。