我在配置路由它说,一个页面,说/secure,有需要登录(通过authlogic完成)。在我的控制器A的before_filter需要的照顾。这工作正常,页面及其资源限制访问 - 通过应用程序

麻烦的是,我们使用亚马逊S3对部署到Heroku的此应用(基于refinerycms)存储。我有一个水桶,它工作正常。

然而,插在该应用程序的安全部分的任何资源是通过浏览器直接访问。换句话说,在/secure页面包含如PDF文件的项目。而通过应用程序的资源固定,这些PDF文件是从互联网(例如URL)的任何地方访问:的 http://s3.amazonaws.com/my_bucket/images/1234/the_file_which_should_be_secure.pdf

我可以做S3细粒度的访问控制?我一定要创建一个新的桶?理想情况下,我想设置我的资源一个标志,这使得它在互联网无形的 - 不知道

任何建议欢迎。

P.S。 openid.org已过期的SSL证书,所以需要创建一个新的空帐户作为我不能登录

有帮助吗?

解决方案

最简单和最简单的方法是仅举与随机的,不可猜测的文件名的S3资产,然后只揭露秘密的网址谁有权访问的人。

这是Facebook的照片和许多其他网站是如何工作的(没有隐私或安全超越个人的文件名默默无闻)。

其他提示

您可以尝试什么是此页面上说:

http://thewebfellas.com/blog/2009/ 29分之8/保护-您-纸夹的下载

在specficics是下部“没有更多的流,时间重定向”。

摘要: S3有四个罐头访问策略,通过认证,读取策略S3提供了一种方法来生成私有内容只适用于指定的时间段经过验证的网址

我还没有真正做到这一点,所以请让我知道它是否适合你。 : - )

如果您使用纸夹,可以限制访问由URL到期存储在亚马逊S3对象。 (如果你不介意使用过期URL)

下面是从thoughtbot /纸夹在GitHub

的维基

的https:// github上。 COM / thoughtbot /纸夹/维基/限制接入到对象存储-ON-亚马逊-S3

另外,还有一些在该页面的底部一些有用的链接,你可能不希望错过。

也许我很困惑,你想什么来完成,但是S3有权限访问要求的加密密钥是在您提供的用户的URL。当使用AWS-S3的宝石,这个选项是默认启用的。所以,你不应该能够在用户不使用带有嵌入了加密密钥的链接访问这些文件。这将要求您以确保文件被设置为仅授权访问。

更多信息可以发现 http://amazon.rubyforge.org/ 关于宝石。查找与访问控制文件(我认为“authenticated_read”是你想要的)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top