Dot-Htaccess
從同一伺服器發出 curl 請求時 IP 不正確
我有一個 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