Dot-Htaccess

從同一伺服器發出 curl 請求時 IP 不正確

  • December 10, 2019

我有一個 IP為 AAA.AAA.AAA.AAA的使用者 A ,該使用者需要在同一台伺服器(Directadmin/CentOS/IP)上使用 CURL訪問另一個使用者 B(IP BBB.BBB.BBB.BBB )的目錄CCC)。該使用者的這個目錄被 HTAccess 鎖定。通常對於外部使用者,我會通過將他/她的 IP 地址添加到 HTAccess 文件中來打開 HTAccess 中的目錄:

<Limit GET POST PUT PATCH DELETE>
order deny,allow
deny from all
allow from AAA.AAA.AAA.AAA
</Limit>

來自使用者 A 的請求未通過 (403)。我在使用者 B 上做了一個 test.php:

<?
echo json_encode($_SERVER, JSON_PRETTY_PRINT);

從使用者 A 捲曲到此文件時:

curl -XPOST https://example.com/test.php --dns-ipv4-addr AAA.AAA.AAA.AAA

我得到以下結果:

"SERVER_ADDR": “BBB.BBB.BBB.BBB”,
"REMOTE_ADDR": “BBB.BBB.BBB.BBB”,

***所以問題是:當從同一伺服器捲曲時,使用者 B 將自己的 IP 地址報告為外部方(SERVER_ADDR 和 REMOTE_ADDR 相同)。***我顯然希望結果是:

"SERVER_ADDR": “BBB.BBB.BBB.BBB”,
"REMOTE_ADDR": “AAA.AAA.AAA.AAA”,

所以我的 IP 限制將按預期工作。我還想補充一點,如果我將BBB.BBB.BBB.BBB添加到 htaccess 中,請求確實會進來。此外,從我的電腦發出請求,IP 地址也會正確報告。

-dns-ipv4-addr只是用於 DNS 請求的地址。它不用於實際請求。請嘗試--interface

curl -XPOST https://example.com/test.php --interface aa.aa.aa.aa

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