禁止特定目錄中的 *.php 被執行 (Apache HTTP Server)

2024-03-19

避免上傳 .php 檔案到網站目錄後 被執行
例如 Wordpress ,上傳 .php 到 wp-content/upload 時,不希望該 php 被執行

只要在 wp-content/upload 目錄中放 .htaccess 檔案
即可阻擋 upload 目錄中的任何 *.php被執行 (會出現 403 Forbidden)
.htaccess 內容是:

<Files ~ "\.php$">
   Require all denied
</Files>

或

<FilesMatch "\.(php|phtml)$">
   Require all denied
</FilesMatch>

適用於 apache httpd 2.4 + mod_php 或 php-fpm


另外,也可在 httpd.conf 設定檔案中,加入

#整個網站都禁止 .php 被執行
<VirtualHost *:80>
  DocumentRoot /var/www/html
  ServerName photo.xyz.com
  RemoveHandler .php .phtml .php3
  RemoveType .php .phtml .php3
  php_flag engine off
  :: ::
</VirtualHost>
適用於 apache httpd 2.4 + mod_php
<br>
php-fpm 不適用以上方法

或
<VirtualHost *:80>
  DocumentRoot /var/www/html
  ServerName photo.xyz.com

  #禁止 upload/ 底下的 *.php 被執行
  <Directory "/var/www/html/upload/">
    <Files "*.php">
    Order Deny,Allow
    Deny from All
    </Files>
  </Directory>
</VirtualHost>
適用於 apache httpd 2.4 + mod_php 或 php-fpm
分類:網站設計      91
Tag apache , security , httpd , WebServer , php ,
留言

留言
top