2009-06-04 8 views
18

क्या कोई तरीका है कि मैं हस्ताक्षरित यूआरएल का उपयोग किए बिना अमेज़ॅन एस 3 पर हॉटलिंकिंग को रोक सकता हूं?मैं हस्ताक्षरित यूआरएल का उपयोग किए बिना अमेज़ॅन एस 3 पर हॉटलिंकिंग को कैसे रोकूं?

उत्तर

11

सही एस 3 बाल्टी नीति सेट अप करके, आप हॉटलिंक को रोकने के लिए रेफ़रल नीति जोड़ सकते हैं।

http://s3browser.com/working-with-amazon-s3-bucket-policies.php

+15

कृपया उत्तर देने के बजाय यहां एक उत्तर पोस्ट करें। –

0

वास्तव में नहीं। आप इसके माध्यम से एक ईसी 2 उदाहरण और प्रॉक्सी चला सकते हैं।

+1

उह्हह। नहीं। जो एक सीडीएन के उद्देश्य को हरा देता है। – FlavorScape

3

मैं अपाचे रिवाइटमैप का उपयोग फ़ाइल एक्सटेंशन - * .jpg, * .gif, * swf, * .fla क्लाउडफ़्रंट के लिए सापेक्ष लिंक को रीमेप करने के लिए करता हूं। मूल रूप से आपकी छवियों का यूआरएल आपकी साइट के सापेक्ष लिंक के रूप में प्रस्तुत करता है। यह पूरी तरह से एस 3/क्लाउडफ्रंट यूआरएल की खोज को रोकता नहीं है, चोर चोर के लिए कठिनाई की एक परत जोड़ता है।

कोशिश करने लायक हो सकता है, उपर्युक्त विधि के साथ htaccess के माध्यम से हॉटलिंक प्रतिबंध लागू करें। मैंने इसे खुद कोशिश नहीं की है।

+0

हू? क्या इसका मतलब यह नहीं है कि क्लाउडफ्रंट सर्वर पर जाने से पहले प्रत्येक छवि अनुरोध को आपके सर्वर पर जाना होगा? यदि हां, तो क्या वह सीडीएन का उपयोग करने के बिंदु को हराने नहीं देता है? (यह वास्तव में वीडियो जैसी बड़ी फ़ाइलों के लिए नहीं होगा, लेकिन छवियों के लिए?) –

+0

अनुरोध आपके वेब सर्वर को हिट करेगा और ब्राउजर को बताया जाएगा कि फ़ाइल को लाने के लिए उसे कहाँ जाना चाहिए, लेकिन ब्राउजर का इतिहास कभी भी वास्तविक यूआरएल के साथ अपडेट नहीं होता है सीडीएन के लिए। यह अनिवार्य रूप से अधिकांश फ्रंट एंड कंट्रोलर फ्रेमवर्क में "मार्ग" के पीछे एक ही चाल है, लेकिन इस मामले में अनुरोध कभी भी एप्लिकेशन सर्वर, केवल अपाचे को अग्रेषित नहीं किया जाता है। – Claude

+0

@ क्लाउड, यदि ब्राउज़र के बजाय, डाउनलोड-मैनेजर्स का उपयोग किया जाता है, या कर्ल/wget जैसे कुछ का उपयोग किया जाता है, तो रीडायरेक्ट पारदर्शी नहीं होगा, और इस प्रकार हॉटलिंकिंग को सक्षम करने का एक तरीका होगा? – icarus74

1

एक अच्छा ट्यूटोरियल here है। टिप्पणियों की जांच करना सुनिश्चित करें, क्योंकि वेबसाइट के कोड में एक व्हाइटस्पेस वर्ण है जो समाधान को काम नहीं करता है।

0

hotlinking कारणों अमेज़न बनाया CloudFront से एक है। क्लाउडफ़्रंट बहुत तेज़ है। मैंने उस पर एक लेखन किया है, आप यहां देख सकते हैं।

http://blog.sat.iit.edu/2011/12/amazon-aws-s3-vs-cloudwatch-performance-grudgematch/

संपादित करें: S3 और CloudFront दोनों यकीन है कि अनुरोध सही यूआरएल से आता है बनाने के लिए बाल्टी नीति के एक ही प्रकार का उपयोग करें। हालांकि क्लाउडफ़्रंट अभी भी तेज़ है।

+1

क्लाउडफ़्रंट हॉटलिंकिंग या एस 3 नीतियों का सम्मान नहीं करता –

15

आपको एक बाल्टी नीति की आवश्यकता है जो दोनों आपके डोमेन से संदर्भकर्ताओं को अनुमति देता है और उन संदर्भकर्ताओं से इनकार करता है जो आपके डोमेन से नहीं हैं। मैंने पाया है कि यदि आप स्पष्ट अस्वीकार नहीं करते हैं तो छवियों को हॉटलिंक किया जा सकता है - कई मार्गदर्शिकाएं और उदाहरण केवल अनुमति नीति देते हैं और इनकार खंड का उल्लेख नहीं करते हैं।

यहाँ मेरी नीति है, बस अपने विवरण के लिए बाल्टी-नाम और अपना-वेबसाइट बदलें:

{ 
    "Version": "2008-10-17", 
    "Id": "", 
    "Statement": [ 
    { 
     "Sid": "Allow in my domains", 
     "Effect": "Allow", 
     "Principal": { 
     "AWS": "*" 
     }, 
     "Action": "s3:GetObject", 
     "Resource": "arn:aws:s3:::BUCKET-NAME/*", 
     "Condition": { 
     "StringLike": { 
      "aws:Referer": [ 
      "http://www.YOUR-WEBSITE.com/*" 
      ] 
     } 
     } 
    }, 
    { 
     "Sid": "Deny access if referer is not my sites", 
     "Effect": "Deny", 
     "Principal": { 
     "AWS": "*" 
     }, 
     "Action": "s3:GetObject", 
     "Resource": "arn:aws:s3:::BUCKET-NAME/*", 
     "Condition": { 
     "StringNotLike": { 
      "aws:Referer": [ 
      "http://www.YOUR-WEBSITE.com/*" 
      ] 
     } 
     } 
    } 
    ] 
} 
+0

इसके लिए धन्यवाद। यह वास्तव में मेरी मदद की और अच्छी तरह से काम किया। मेरा एकमात्र सुझाव यह है कि शायद आप "http://YOUR-WEBSITE.com/*" के लिए केवल सभी आधारों को कवर करने के लिए उत्तर में एक प्रविष्टि जोड़ते हैं, जहां मेरा हिचकी था। यद्यपि सही लिपि के लिए चीयर्स। – Cheeky

+0

यह बहुत अच्छा काम करता है लेकिन मैं खाली रेफरर्स की अनुमति कैसे दूं? सीएसएस के माध्यम से छवियों को जोड़ने पर रेफरर खाली है और छवियां प्रदर्शित नहीं हो रही हैं। – prophoto

+0

बिल्कुल सही! तुमने मुझे बचाया – Ricardo

1

यह अपने बाल्टी नाम करने के लिए अपने official docs

बदलें examplebucket में है, और अपने डोमेन के लिए example.com

"Version":"2012-10-17", 
"Id":"http referer policy example", 
"Statement":[ 
    { 
    "Sid":"Allow get requests originating from www.example.com and example.com.", 
    "Effect":"Allow", 
    "Principal":"*", 
    "Action":"s3:GetObject", 
    "Resource":"arn:aws:s3:::examplebucket/*", 
    "Condition":{ 
     "StringLike":{"aws:Referer":["http://www.example.com/*","http://example.com/*"]} 
    } 
    } 
] 
} 
संबंधित मुद्दे