Apache-2.2

Apache 的“要求所有授權”到底做了什麼?

  • September 13, 2019

我剛剛將我的 Apache 伺服器更新為在 Ubuntu 13.04 下執行的 Apache/2.4.6。我曾經有一個包含以下內容的虛擬主機文件:

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

但是當我執行時,我得到了“禁止。您無權訪問/”

在進行了一些Google搜尋後,我發現要讓我的網站再次執行,我需要添加以下行“要求全部授予”,以便我的虛擬主機看起來像這樣:

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

我想知道這是否“安全”並且不會帶來任何安全問題。我在 Apache 的頁面上讀到,這“模仿了以前由‘全部允許’和‘全部拒絕’指令提供的功能。該提供程序可以採用‘授予’或‘拒絕’兩個參數之一。以下範例將授予或拒絕對所有請求的訪問。”

但它沒有說這是否是某種安全問題,或者為什麼我們現在必須這樣做,而過去你不必這樣做。

訪問控製配置在 2.4 中發生了變化,舊的配置不做一些改動是不兼容的。見這裡

如果您的舊配置是Allow from all(沒有阻止訪問服務的 IP 地址),那麼Require all granted新的功能等效。

我知道這是一篇舊文章,但我認為我可以通過一個我一直使用的功能範例來提供更多幫助!

在 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你應該沒問題!

引用自:https://serverfault.com/questions/549517