Вопрос

У меня есть маршрут на моем конфиге, который говорит, что для страницы, скажем, /secure, есть необходимый логин (сделано через authLogic). A FORE_FILER в моем контроллере заботится об этом. Это работает нормально, страница и ее ресурсы имеют ограниченный доступ - через приложение.

Проблема в том, что мы используем Amazon S3 для хранения в этом приложении (на основе REFineryCms), развернутых в Heroku. У меня есть ведро, и это работает нормально.

Тем не менее, любой ресурс, вставленный в безопасной части приложения, напрямую доступен через браузер. Другими словами, /secure Страница содержит элементы, такие как PDF-файлы. Находясь через приложение, ресурсы защищены, эти файлы PDF доступны из любой точки в Интернете (пример URL): http://s3.amazonaws.com/my_bucket/images/1234/the_file_which_should_be_secure.pdf.

Могу ли я сделать тонкозернистый доступ доступа на S3? Должен ли я создать новое ведро? В идеале я хотел бы установить флаг на моем ресурсе, который делает его невидимым в Интернете - не знаю.

Любое предложение приветствовало.

PS OpenId.org имеет срок действия SSL SSL, поэтому необходимо для создания новой пустой учетной записи, как я не мог войти

Это было полезно?

Решение

Самое простое и простое решение - это просто для того, чтобы назвать ваши активы S3 со случайными, неподходящими именами файлов, а затем выставлять только секретные URL-адреса людям, которые должны иметь доступ.

Вот как работает фото Facebook и многие другие сайты (не существует конфиденциальности или безопасности, кроме ощущения отдельных файлов).

Другие советы

Вы можете попробовать, что сказано на этой странице:

http://thewebfellas.com/blog/2009/8/29/protecting-your-sapherclip-downloads.

Спетексики находятся под разделом "Нет больше потоковой передачи, времени для перенаправления".

Резюме: S3 имеет четыре консервированных политики доступа, используя политику для чтения аутентификации S3, обеспечивает способ создания аутентифицированного URL для частного контента, который работает только в течение определенного периода времени.

Я на самом деле не сделал это, поэтому, пожалуйста, дайте мне знать, если это работает для вас. :-)

Если вы используете PaperClip, вы можете ограничить доступ к объектам, хранящимся на Amazon S3, истекающий URL. (Если вы не против использовать истекший URL)

Вот вики из мыслима / скрепки на Github

https://github.com/thoughtbot/bapherclip/wiki/restricting-access-To-objects-stored-on-amazon-s3.

Кроме того, есть некоторые полезные ссылки в нижней части этой страницы, которую вы можете не захотеть пропустить.

Может быть, я запутался относительно того, что вы пытаетесь достичь, но S3 имеет доступ к разрешениям, которые требуют ключа шифрования в URL-адресе, который вы предоставляете пользователю. При использовании GEM AWS-S3 эта опция включена по умолчанию. Следовательно, вы не должны иметь возможность получить доступ к файлам, если только пользователь не использует ссылку с зашифрованным ключом, встроенным в него. Это потребует от вас, чтобы убедиться, что файл установлен только для авторизованного доступа.

Больше информации можно найти http://amazon.rubyforge.org/ о GEM. Ищите документацию, связанную с контролем доступа (я думаю, что «аутентификация_read» - это то, что вы хотите).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top