Linux

限制瀏覽器訪問 httpd.conf 中 PHP 腳本的一個 IP 地址

  • October 26, 2019

我的目標是允許 IP 1.2.3.4 執行 /dir1/hello-php.php 腳本。

“開箱即用” AWS EC2 linux 2 apache 2.4.39(僅進行以下更改)、PHP 5.7.26,並在 Windows 10 上使用 Firefox 70.0 64 位。php.conf 也具有預設設置。

腳本 .. /dir1/hello-php.php 和 /dir1/hello-html.html

Apache httpd.conf 和 php.conf 有預設設置,包括 ..

<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
<Files ".ht*">
Require all denied

現在,我將 httpd.conf 更改為 ..

<Directory "/var/www/html/dir1">
AllowOverride None
<Files "*.php">
   Require ip 1.2.3.4
</Files>

從火狐..

https://www.website.com/dir1/hello-php.php給出“禁止:您無權訪問此伺服器上的 /dir1/hello-php.php。” 但是.. https://www.website.com/dir1/hello-html.html 有效。

然後,如果我將指令更改為 ..

<Directory "/var/www/html/dir1">
AllowOverride None
<Files "*.html">
   Require ip 1.2.3.4
</Files>

然後 ..

https://www.website.com/dir1/hello-php.php 有效。但是.. https://www.website.com/dir1/hello-html.html 給出“禁止:您無權訪問此伺服器上的 /dir1/hello-html.html。”

這些結果回頭看,並沒有達到我的目標。

為了只允許 IP 1.2.3.4 成功執行 /dir1/hello-php.php 腳本,我在 httpd.conf 或 php.conf 中缺少什麼?

您可以禁止訪問整個目錄,只允許訪問指定的 IP:

<Directory "/var/www/html/dir1">
 AllowOverride None
 Require ip 1.2.3.4

或者在你的例子中,你可以這樣做

<Directory "/var/www/html/dir1">
AllowOverride None
<Files  ~ "\.(html|php)$">
Require ip 1.2.3.4
</Files>

html也不是腳本

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