Apache-2.4

.htaccess 僅允許來自具有指定 X-Forward-For IP 的 Cloudflare

  • February 27, 2017

我想允許人們從指定的 IP 訪問我的頁面。但是,我支持 Cloudflare。獲取使用者 IP 的唯一方法是從X-Forwarded-For標頭。但我不能相信X-Forwarded-For,因為人們可以繞過 Cloudflare 並直接訪問我的伺服器 IP(假設他們可以幸運地猜到我的伺服器 IP)。

所以,我想允許X-Forwarded-For來自 Cloudflare 的特定 IP 列表。我知道Cloudflare 的 IP 列表。這是我到目前為止得到的。這樣對嗎?

SetEnvIF X-Forwarded-For "x.x.x.x" AllowIP

<RequireAny>

   <RequireAll>

       <RequireAny>
           Require ip 199.27.128.0/21
           Require ip 173.245.48.0/20
           Require ip 103.21.244.0/22
           Require ip 103.22.200.0/22
           Require ip 103.31.4.0/22
           Require ip 141.101.64.0/18
           Require ip 108.162.192.0/18
           Require ip 190.93.240.0/20
           Require ip 188.114.96.0/20
           Require ip 197.234.240.0/22
           Require ip 198.41.128.0/17
           Require ip 162.158.0.0/15
           Require ip 104.16.0.0/12
           Require ip 172.64.0.0/13
       </RequireAny>

       Require env AllowIP
   </RequireAll>

   Require ip 127.0.0.1
</RequireAny>

還有一件事。如何允許LIST OF X-Forward-ForIP而不是只允許一個指定的 IP。

問題摘要

  • 我的.htaccess權利和安全嗎?
  • 如何允許 IP 列表而不是來自X-Forwarded-For.

如何允許 IP 列表而不是來自X-Forward-For.

您可以有多個SetEnvIf指令。(?)

請注意,這x.x.x.x是一個正則表達式,因此您可以將其表達為就(1\.1\.1\.1|2\.2\.2\.2|3\.3\.3\.3)好像只有幾個 IP 地址一樣。(記住要避開點。)

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