سؤال ما الذي تفعله أباتشي "طلب كل شيء"؟


لقد قمت بتحديث خادم Apache الخاص بي إلى Apache / 2.4.6 والذي يعمل تحت Ubuntu 13.04. اعتدت أن يكون لدي ملف vhost يحتوي على ما يلي:

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

ولكن عندما ركضت أنني حصلت على "ممنوع. ليس لديك إذن للوصول /"

بعد القيام بقليل من googling ، اكتشفت أنه لكي أعمل موقعي مرة أخرى ، كنت بحاجة إلى إضافة السطر التالي "طلب كل ما تم منحه" حتى تبدو شبهاتي هكذا:

<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 (أي عناوين IP ممنوعة من الوصول إلى الخدمة) ، ثم Require all granted هو equunderent وظيفية جديدة.


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


وأنا أعلم أنها وظيفة قديمة ولكن أعتقد أنه يمكن أن يساعد أكثر مع مثال وظيفي التي أستخدمها دائما!

في apache 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>

في apache 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