【问题标题】:Cloudfront signed cookies and simultaneous access to multiple paths in s3 bucketCloudfront 签名 cookie 和同时访问 s3 存储桶中的多个路径
【发布时间】:2015-07-10 21:33:04
【问题描述】:

我在基于 Web 的应用程序中使用签名 cookie 来限制通过 Cloudfront 访问我的 S3 存储桶中的内容

例如,用户可以通过http://mycf.example.com/folder1 访问s3://mys3/folder1 中的内容。他将无法访问同一级别的其他文件夹中的内容。

这是我的问题:

用户使用我的网络应用访问他在s3://mys3/user1 中的内容。他打开另一个浏览器实例来访问他在s3://mys3/buddy 中的同伴的内容。第二个浏览器将下载一组新的签名 cookie 并覆盖 user1 的那些。现在,如果他切换回第一个窗口,他将遇到“拒绝访问”问题。

避免此问题的最佳做法是什么?例如是否可以在策略的 url 中指定多个路径?

【问题讨论】:

    标签: cookies amazon-s3 amazon-cloudfront


    【解决方案1】:

    您不能在策略中指定多个路径。如果您的文件夹结构与您可以使用的通配符值不匹配,您可能需要为每个路径生成签名 cookie 并相应地确定它们的范围。

    您可以指定 cookie 将用于什么路径。设置 Cookie 时,为您的第一个用户指定 /user1 的路径,为第二个用户指定 /user2 的路径。那么您的浏览器只会在路径匹配时发送它们。

    http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-setting-signed-cookie-canned-policy.html#private-content-canned-policy-signature-cookies

    【讨论】:

    • 我想你误解了我的问题。 User1 需要同时访问/user1/user2。据我了解,策略中的路径只能是“/user1”或“/user2”。
    • 这不是答案。问题是关于将多个 cookie 设置为同一浏览器的不同路径。没有在不同的浏览器上为两个不同的用户设置一个 cookie,这就是这个“答案”似乎假设的“第二个”用户的概念。
    • @AnthonyKong 不,他理解你的问题,他的回答很可能是正确的。如果您在 cookie 中指定不同的路径,您可以同时保留两组 cookie,从而允许同时访问不同的存储桶。 See this related cookie question.
    猜你喜欢
    • 2019-04-13
    • 2015-07-23
    • 2017-07-04
    • 1970-01-01
    • 1970-01-01
    • 2019-04-23
    • 2015-02-24
    • 1970-01-01
    • 2018-10-27
    相关资源
    最近更新 更多