सवाल अपाचे की "सभी अनुमोदित की आवश्यकता" वास्तव में क्या करती है?


मैंने अपने अपाचे सर्वर को अपाचे / 2.4.6 में अपडेट किया है जो उबंटू 13.04 के तहत चल रहा है। मेरे पास एक vhost फ़ाइल होती थी जिसमें निम्न था:

<Directory "/home/john/development/foobar/web">
    AllowOverride All 
</Directory>

लेकिन जब मैं भाग गया तो मुझे "निषिद्ध" मिला। आपको एक्सेस करने की अनुमति नहीं है / "

थोड़ी सी गुगल करने के बाद मुझे पता चला कि मेरी साइट फिर से काम करने के लिए मुझे निम्नलिखित पंक्ति "सभी अनुमोदित की आवश्यकता" जोड़ने की आवश्यकता है ताकि मेरा vhost इस तरह दिखाई दे:

<Directory "/home/john/development/foobar/web">
    AllowOverride All 
    Require all granted
</Directory>

मैं जानना चाहता हूं कि यह "सुरक्षित" है और कोई सुरक्षा समस्या नहीं लाता है। मैंने अपाचे पर पढ़ा पृष्ठ कि यह "पहले से अनुमति दें 'और' सभी से इनकार करें 'निर्देशों द्वारा प्रदान की गई कार्यक्षमता की नकल करता है। यह प्रदाता दो तर्कों में से एक ले सकता है जो' अनुमोदित 'या' अस्वीकृत 'हैं। निम्नलिखित उदाहरण प्रदान या अस्वीकार करेंगे सभी अनुरोधों तक पहुंच। "

लेकिन यह नहीं कहा गया कि यह किसी तरह का सुरक्षा मुद्दा था या हमें अब ऐसा क्यों करना है जब आपको अतीत में नहीं करना था।


81
2017-10-29 21:51


मूल


अपग्रेडिंग दस्तावेज़ 'एक्सेस कंट्रोल' परिवर्तनों को विस्तार से समझाते हैं। httpd.apache.org/docs/2.4/upgrading.html - John Magnolia


जवाब:


एक्सेस कंट्रोल कॉन्फ़िगरेशन 2.4 में बदल गया है, और पुराने कॉन्फ़िगरेशन कुछ बदलावों के बिना संगत नहीं हैं। देख यहाँ

अगर आपकी पुरानी कॉन्फ़िगरेशन थी Allow from all (सेवा तक पहुंचने से कोई आईपी पता अवरुद्ध नहीं है), फिर Require all granted नया कार्यात्मक समतुल्य है।


81
2017-10-30 02:31



उल्लेख नहीं है, पुरानी विधि बहुत उलझन में थी और कुछ अधिक समझदार के साथ प्रतिस्थापित होने के लिए लंबे समय से अतिदेय था। - Michael Hampton♦
इस तरह के एक बड़े बदलाव के लिए मैं कॉन्फ़िगरेशन फ़ाइलों को स्वचालित रूप से माइग्रेट करने के लिए किसी प्रकार का समर्थन की अपेक्षा करता हूं या कम से कम उन सभी बिंदुओं को दिखाता हूं जहां परिवर्तन की आवश्यकता होती है। - Wolfgang Fahl
एक कामकाजी प्रदर्शन देखना अच्छा लगेगा Require all denied । - Kraang Prime
मुझे नहीं लगता कि यह बराबर है Allow from all। आपको "विलय" करना होगा Require all granted अन्य मौजूदा के साथ Require नियम। मेरे मामले में एक मौजूदा Require valid-user कॉन्फ़िगरेशन को अंधाधुंध रूपांतरित करने पर हर जगह अनुशंसित होने पर अनदेखा किया गया था। यह सबसे बुरी चीज थी जो हो सकती है ... - rudimeier
ओपी के सवाल का उचित जवाब होना अच्छा लगेगा। "सभी समकक्षों से अनुमति दें" बहुत संतोषजनक नहीं है। - Sharcoux


मुझे पता है कि यह एक पुरानी पोस्ट है, लेकिन मुझे लगता है कि एक कार्यात्मक उदाहरण के साथ और अधिक मदद कर सकता हूं जिसका मैं हमेशा उपयोग करता हूं!

अपाचे 2.2 में ऐसा होगा:

    <Location />
       Order deny, allow
       allow from all
    </Location>
    <Location /adm>
        Order deny, allow
        deny from all
        allow from myniceip
    </Location>
    <Location /disabled>
        Order deny, allow
        deny from all
    </Location>

अपाचे 2.4 में ऐसा होगा:

   <Location />
       require all granted
    </Location>
   #Note that you dont need to use require all denied
   #to require only a group of ips.. 
    <Location /adm>
        require ip myniceip
    </Location>
    <Location /disabled>
        Require all denied
    </Location>

सावधानी से हो  htacess प्रमाणीकरण का उपयोग करते समय, यह नया वाक्यविन्यास कुछ कर सकता है बुरी और अप्रत्याशित चीजें, अगर यह आपका मामला है तो कृपया पढ़ें: https://unix.stackexchange.com/questions/413309/apache-2-4-wants-me-to-decide-require-valid-ip-or-require-valid-user और आपको ठीक होना चाहिए!


9
2017-12-08 12:02