2012-04-01 12 views
7

मान लीजिए कि उपयोगकर्ता ए में फेसबुक में अपने खाते में कुछ छवियां हैं जो लॉग-इन के बाद देख सकते हैं।केवल उपयोगकर्ताओं में लॉग इन के लिए छवि फ़ाइलों तक पहुंच प्रतिबंधित करें

यदि उपयोगकर्ता ए लॉग आउट करता है और उन छवियों में से किसी एक का यूआरएल आज़माया जाता है, तो 'पहुंच प्रतिबंध' -प्रकार संदेश प्रकट होता है।

PHP में निर्मित सोशल नेटवर्किंग साइट के बारे में सोचें।

इस तरह के नियंत्रण को कैसे प्राप्त करें ताकि साइट पर लॉग इन किए बिना कोई छवियां देखी जा सकें, जैसे फेसबुक करता है?

उत्तर

12
  • सभी छवियों को उस फ़ोल्डर में ले जाएं जो वेब से उपलब्ध नहीं है।
  • एक php स्क्रिप्ट (image.php) लागू करें जो जांचता है कि उपयोगकर्ता लॉग इन है या इनपुट के रूप में छवि नाम स्वीकार करता है (उदा। Image.php? Name = flower.png)।
  • उपयोगकर्ता के प्रवेश करते हैं, तो उचित सामग्री प्रकार छवि header()http://il2.php.net/manual/en/function.header.php (छवि/उदाहरण के लिए png)
  • डिस्क से फ़ाइल पढ़ें और readfile()http://php.net/manual/en/function.readfile.php का उपयोग कर उपयोगकर्ता के लिए भेज भेज देते हैं।
  • सुनिश्चित करें कि लोग छवियों के बाहर फ़ाइलों को /images.php?name=/etc/hosts जैसे कुछ भेजकर सक्षम नहीं होंगे (फ़ाइल नाम के बजाय छवि आईडी स्वीकार करना बेहतर होगा, या फ़ाइल नाम का हैश, आप हैश उत्पन्न करने के लिए md5()http://il2.php.net/manual/en/function.md5.php का उपयोग कर सकते हैं लेकिन छवि फ़ाइलों को उनके एमडी 5 हैश के अनुसार नाम देना याद रखें, इस मामले में आप हमेशा छवि निर्देशिका में छवि फ़ाइल को देखते हैं)।
  • यदि उपयोगकर्ता लॉग इन नहीं है, तो आप एक कस्टम छवि भेज सकते हैं जो "कृपया लॉगिन करें" या केवल स्क्रिप्ट को समाप्त करे।
+0

मान लीजिए कि छवि url mysite.com/images/img.jpg है। यदि यह यूआरएल मारा गया है, तो स्क्रिप्ट image.php कब निष्पादित किया जाएगा/ –

+0

छवि का 'src' विशेषता होना चाहिए: mysite.com/image.php?name=img.jpg तो वह स्क्रिप्ट image.php को नियंत्रित करेगा छवि फ़ाइल तक पहुंचें और इसे केवल तभी दिखाएं जब अनुरोधकर्ता उपयोगकर्ता लॉग इन हो। अगर वह लॉग इन नहीं है, तो स्क्रिप्ट को निष्पादन को समाप्त करना चाहिए, अन्यथा, स्क्रिप्ट को 'readfile' (पथ/छवियों/img होना चाहिए। jpg ')' उपयोगकर्ता को छवि भेजने के लिए (उचित सामग्री-प्रकार सेट करने के लिए 'हेडर()' का उपयोग करना भी न भूलें। – Yaniro

+0

यदि url mysite.com/images/img.jpg है, जो स्रोत विशेषता क्या पढ़ने की कोशिश करेगी? –

संबंधित मुद्दे

 संबंधित मुद्दे