Nginx/Apache下如何禁止指定目錄運(yùn)行PHP腳本
網(wǎng)站程序的上傳目錄通常是不需要PHP執(zhí)行解釋權(quán)限,通過(guò)限制目錄的PHP執(zhí)行權(quán)限可以提網(wǎng)站的安全性,減少被攻擊的機(jī)率。
下面和大家一起分享下如何在Apache和Nginx禁止上傳目錄里PHP的執(zhí)行權(quán)限。
- Apache下禁止指定目錄運(yùn)行PHP腳本
在虛擬主機(jī)配置文件中增加php_flag engine off指令即可,配置如下
<Directory ~ "/website/uploads">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
php_flag engine off
</Directory>
- Nginx下禁止指定目錄運(yùn)行PHP腳本
Nginx更簡(jiǎn)單,直接通過(guò)location條件匹配定位后進(jìn)行權(quán)限禁止。
在server配置段中增加如下的配置
如果是單個(gè)目錄
location ~* ^/uploads/.*\.(php|php5)$
{
deny all;
}
如果是多個(gè)目錄
location ~* ^/(attachments|uploads)/.*\.(php|php5)$
{
deny all;
}
注意:這段配置文件一定要放在下面配置的前面才可以生效。
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
最后給一個(gè)完整的配置示例
location ~ /mm/(data|uploads|templets)/*.(php)$ {
deny all;
}
location ~ .php$ {
try_files $uri /404.html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
配置完后記得重啟Nginx生效。