2011-03-21 11 views
11

मैं यह पता लगाने की कोशिश करूंगा कि अनधिकृत या स्वाभाविक उपयोगकर्ता से फ़ाइलों को डाउनलोड करने के लिए निर्देशिका को कैसे सुरक्षित किया जाए। अग्रिम धन्यवाद।डाउनलोड करने योग्य फ़ाइलों की रक्षा करने के लिए सबसे अच्छी रणनीति -php/mysql Apache2 सर्वर

उत्तर

10

एक अच्छा डुप्लिकेट नहीं ढूंढा जा सकता है, लेकिन एक छोटे से खोज इस PHP protect a folder

जैसे परिणाम सामने आ जाएंगे पीएचपी सत्र php का उपयोग कर प्राधिकरण के आधार पर फ़ोल्डर उपयोग को सीमित करने के लिए एक सरल तरीका है। इसके लिए वैध अधिकृत sesssions (और उनके हटाने को स्वचालित करने) के लिए स्टब फाइल बनाने की आवश्यकता है। PHP में आप करते हैं:

if ($user_has_permission_to_download) 
{ 
    touch("tmp/access-" . session_id()); 
} 

फिर एक सरल RewriteRule + RewriteCond तो प्राधिकरण के लिए सेवा कर सकते हैं:

पहले खंड परमिट पहुँच जब अनुसार कुकी मान पाया जाता है और एक प्राधिकरण ठूंठ फ़ाइल मौजूद है। दूसरा नियम किसी और के लिए पहुंच को अवरुद्ध करता है।

+0

धन्यवाद! यह एक महान विचार है। मैंने इसे अपनाया है और मेरी जरूरतों को पूरा करने के लिए संशोधित किया है, लेकिन कोर अभी भी इस महान जवाब के समान ही है! – ADTC

2

.htaccess आपका सबसे अच्छा दोस्त है। उन सभी से इनकार कर दें। Htaccess फ़ाइल। या यदि आप .htaccess फ़ाइल एन्क्रिप्ट का उपयोग नहीं करना चाहते हैं और डाउनलोड पथ (एलओएल!) हर समय बदलते हैं।

+0

आपको उस उत्तर पर विस्तार करना चाहिए। इस समय यह बहुत उपयोगी नहीं है। – JohnP

+0

आप सही हैं - लेकिन मैं अपना जवाब हटाना नहीं चाहता हूं। मुझे क्या करना चाहिए? – Bytemain

+1

आप बस अपना उत्तर संपादित कर सकते हैं :) – JohnP

3

निम्नलिखित सामग्री के साथ फाइलों के साथ निर्देशिका में एक .htaccess फ़ाइल रखो,

deny from all 

फिर एक स्क्रिप्ट है कि कि उदाहरण readfile() के लिए उपयोग करता है उपयोगकर्ता यदि फ़ाइल सेवा करने के लिए बनाने के अधिकृत है

2

मुझे लगता है कि आपके पास उपयोगकर्ता/लॉगिन स्क्रिप्ट कहीं है जो किसी उपयोगकर्ता को प्रमाणित करता है? .htaccess फ़ाइल अनुरोध को एक php स्क्रिप्ट के माध्यम से अग्रेषित करने के लिए नियमों को दोबारा लिखें जो उपयोगकर्ता चर लॉग इन करते हैं तो सत्र चर जांचता है तो फ़ाइल लौटाता है।

एल्क के कुछ:

.htaccess 
RewriteEngine on 
RewriteRule ^(.*).(pdf|exe|doc|whatever)$ some-script.php?file=$1.$2 [L] 

<?php 
if(loginCheck()) //function somewhere that checks session if user is logged in 
{ 
    return fopen('../files/' . $_GET['file']); //open and return the requested file 
} 

यह आप क्या करने की जरूरत की एक विचार देने के लिए सिर्फ छद्म कोड है। आपको सही फ़ाइल शीर्षकों को भी गूंजना पड़ सकता है।

और लोगों को केवल फाइल निर्देशिका में जाने से रोकने के लिए, मैं उस फ़ोल्डर में एक .htaccess फ़ाइल डालने की सलाह देता हूं और साथ ही deny from all कह रहा हूं ताकि प्रत्येक व्यक्ति इसे एक्सेस करने से रोक सके।

+0

महत्वपूर्ण नहीं है, लेकिन 'elk' 'ilk' होना चाहिए। ;-) – WraithKenny

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