سؤال

لدي مسار في التهيئة التي تقول ذلك بالنسبة لصفحة ، على سبيل المثال /secure, ، هناك تسجيل دخول مطلوب (يتم عبر Authlogic). قبل_filter في وحدة التحكم الخاصة بي يعتني بذلك. هذا يعمل بشكل جيد ، وقد تقيد الصفحة ومواردها الوصول - من خلال التطبيق.

المشكلة هي أننا نستخدم Amazon S3 للتخزين على هذا التطبيق (استنادًا إلى مصفاة) المنشور في 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 منتهية الصلاحية ، لذلك هناك حاجة لإنشاء حساب فارغ جديد لأنني لم أتمكن من تسجيل الدخول

هل كانت مفيدة؟

المحلول

إن أبسط الحلول وأسهل هو فقط تسمية أصول S3 بأسماء ملفات عشوائية لا يمكن تخمينها ، ثم تعرض عناوين URL السرية فقط للأشخاص الذين يجب أن يحصلوا على الوصول.

هذه هي الطريقة التي تعمل بها صور Facebook والعديد من المواقع الأخرى (لا توجد خصوصية أو أمان يتجاوز غموض أسماء الملفات الفردية).

نصائح أخرى

يمكنك تجربة ما يقال في هذه الصفحة:

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

تقع المحوسين تحت القسم "لا مزيد من التدفق ، وقت لإعادة التوجيه".

ملخص: يحتوي S3 على أربع سياسات وصول معلبة ، باستخدام سياسة القراءة المصادقة S3 توفر وسيلة لإنشاء عنوان URL المصادق عليه للمحتوى الخاص الذي يعمل فقط لفترة زمنية محددة.

لم أفعل هذا بالفعل ، لذا يرجى إعلامي إذا كان ذلك مناسبًا لك. :-)

إذا كنت تستخدم paperclip ، فيمكنك تقييد الوصول إلى الكائنات المخزنة على Amazon S3 عن طريق انتهاء صلاحية عنوان URL. (إذا كنت لا تمانع في استخدام عنوان URL المنتهي)

إليكم الويكي من Thatbot/paperclip على github

https://github.com/theoughtbot/paperclip/wiki/restricting-access-to-objects-stored-on-amazon-s3

أيضًا ، هناك بعض الروابط المفيدة في أسفل تلك الصفحة التي قد لا ترغب في تفويتها.

ربما أشعر بالارتباك بشأن ما تحاول إنجازه ، لكن S3 لديه الوصول إلى أذونات يتطلب مفتاح تشفير في عنوان URL الذي توفره للمستخدم. عند استخدام GEM AWS-S3 ، يتم تمكين هذا الخيار افتراضيًا. لذلك ، يجب ألا تتمكن من الوصول إلى الملفات ما لم يكن المستخدم يستخدم الرابط مع المفتاح المشفر المضمن فيه. سيتطلب منك ذلك التأكد من تعيين الملف على الوصول المصرح به فقط.

يمكن العثور على مزيد من المعلومات http://amazon.rubyforge.org/ حول الجوهرة. ابحث عن الوثائق المتعلقة بالتحكم في الوصول (أعتقد أن "Authenticated_Read" هو ما تريده).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top