2012-05-01 25 views
5

हम अपने मॉडएक्स स्थापना में दो अलग-अलग संसाधनों की रक्षा करने की कोशिश कर रहे हैं।मैं htaccess और htpasswd का उपयोग कर एक मॉडएक्स वेबसाइट में संसाधनों को कैसे सुरक्षित रखूं?

: वर्तमान .htaccess कोड के रूप में इस प्रकार है (नहीं ModX सामान के सभी सहित)

AuthName "Dialog prompt" 
AuthType Basic 
AuthUserFile /var/www/vhosts/mywebsite.co.uk/.htpasswd 

<FilesMatch ^index.php\?q=71$> 
    require valid-user 
</FilesMatch> 

व्यायाम का उद्देश्य निम्न संसाधनों की रक्षा के लिए है

मैंने LocationsMatch, Locations, Files और Filesmatch के विभिन्न संयोजनों को आजमाया है और इसे काम पर नहीं लाया जा सकता है।

अग्रिम में धन्यवाद

+1

मैं कहूंगा: उन निर्देशों के लिए मैन्युअल पढ़ने शुरू करें, जो कम से कम आपको अंतर्दृष्टि प्रदान करेगा कि आपने अभी तक क्या प्रयास किया है * काम नहीं करता है * http: //httpd.apache।संगठन/दस्तावेज़/वर्तमान/mod/core.html # filesmatch – hakre

+0

प्रत्येक शब्द को पढ़ें और हर विकल्प को आजमाएं जिसे मैं एक्सप्लोर कर सकता हूं। इस समस्या को प्राप्त करने में कुछ अनुभवों के साथ शायद यह क्या है जो बहुत आम होना चाहिए। – user1346416

+1

आप .htaccess का उपयोग क्यों कर रहे हैं और मॉडेक्स संसाधन/सुरक्षा प्रबंधन में निर्मित नहीं है? –

उत्तर

0

यह वही है कुल समाधान किया गया है:

किसी और को पता है की जरूरत है, मैं कहा जाता passwordprotect एक टुकड़ा बनाया है और पेज के शीर्ष पर डाल [ [passwordprotect]]।

<?php 

if(isset($_SERVER['PHP_AUTH_USER']) && ($_SERVER['PHP_AUTH_USER']=='user') &&  ($_SERVER['PHP_AUTH_PW']=='password')) 
{ 
    echo 'You are successfully logged in.'; 
} else { 
    header('WWW-Authenticate: Basic realm="Protected area"'); 
    header('HTTP/1.0 401 Unauthorized'); 
    echo 'Text to send if user hits Cancel button'; 
    exit; 
} 

संपादित करें: मैं तो निम्न कोड (ऊपर प्रतिक्रिया पर आधारित एक फिल्म) में डाल आप पा रहे हैं तो यह है कि यह कभी कभी काम करता है और कभी कभी काम नहीं करता है, यह शायद इसलिए है क्योंकि उपयोग कर रहा है [[passwordprotect] ], modx स्निपेट कैश करेगा। मुझे क्रांति पर: [[! Passwordprotect]] के साथ बेहतर सफलता मिली। मुझे लगता है कि कोड इवोल्यूशन पर [! Passwordprotect!] है। विस्मयादिबोधक चिह्न सिर्फ स्निपेट को कैश न करने के लिए इंगित करते हैं। उम्मीद है कि किसी की मदद करता है!

+0

यदि आप पाते हैं कि यह कभी-कभी काम करता है और कभी-कभी काम नहीं करता है, तो संभवत: [[passwordprotect]] का उपयोग करके, मोडक्स स्निपेट को कैश करेगा। – user1346416

+0

इसके अलावा, कैश किए गए स्निपेट में पिछला उपयोगकर्ता प्रमाणीकृत हो सकता है और नया नहीं। सही कार्यान्वयन के लिए नीचे पढ़ें। –

0

आपको शायद htaccess की आवश्यकता नहीं है। आप सही प्रणाली घटना से HTTP प्रमाणीकरण हेडर भेज सकते हैं http://php.net/manual/en/features.http-auth.php

+0

धन्यवाद - यह अच्छी सलाह थी! – user1346416

0

ऐसा करने का कोई कारण नहीं है और एमओडीएक्स क्रांति एसीएल के पूरे उद्देश्य को व्यक्त करता है। सही उत्तर है:

  1. उपयोगकर्ता समूह को न्यूनतम भूमिका के साथ स्थापित करें जो संसाधनों तक पहुंच सकता है।
  2. संसाधन समूह के भीतर एक परीक्षण संसाधन बनाएं।
  3. संसाधन समूह में साइट व्यवस्थापक जोड़ें।
  4. संसाधन समूह में एक परीक्षण उपयोगकर्ता बनाएँ।
  5. साइट कैश रीफ्रेश करें।
  6. सभी उपयोगकर्ताओं को लॉग आउट करें - स्वयं सहित।
  7. एसीएल का परीक्षण करें - साइट व्यवस्थापक के साथ प्रबंधक और फ्रंट एंड दोनों में।
  8. लॉग आउट करें या एक पूरी तरह से अलग ब्राउज़र का उपयोग करें और परीक्षण उपयोगकर्ता के साथ परीक्षण करें।
  9. एक बार यह काम कर रहा है संरक्षित दस्तावेज़ संसाधन समूह में ले जाएं।
  10. उन उपयोगकर्ताओं को जोड़ें जिन्हें आप एक्सेस करना चाहते हैं।
  11. स्निपेट निकालें।

यदि आपको मेरी पुस्तक की प्रति प्राप्त करने या मेरी साइट पर जाने में अधिक सहायता चाहिए।