Nginx 是怎么禁止访问php的 ?
在 Nginx 配置中,确保 PHP 脚本无法被解析,从而禁止 PHP 执行。
deny all;
}
限制只允许访问特定路径下的 PHP 脚本,其他路径禁止。
# 允许访问 /public 下的 PHP 脚本
location ~ \.php$ {
fastcgi_pass unix:/var/run/php-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
# 禁止访问其他路径的 PHP 脚本
location ~ \.php$ {
deny all;
}
要求用户提供用户名和密码以访问 PHP 脚本。
auth_basic “Restricted”;
auth_basic_user_file /etc/nginx/.htpasswd; # 使用 htpasswd 生成密码文件
# …
}
限制只有特定的 IP 地址可以访问 PHP 脚本。
allow 192.168.1.1; # 允许的 IP 地址
deny all; # 禁止其他 IP 地址
# …
}
检查 HTTP Referer 头,只允许特定来源的请求。
valid_referers none blocked example.com; # 允许的 Referer
if ($invalid_referer) {
return 403; # 拒绝无效的 Referer
}
# …
}
检查 User-Agent 头,只允许特定 User-Agent 访问。
if ($http_user_agent ~* (bad-agent|another-bad-agent)) {
return 403; # 拒绝不良 User-Agent
}
# …
}
通过正则表达式匹配 URL,只允许特定 URL 访问 PHP。
if ($request_uri ~* ^/allowed-path/) {
# 允许的 URL 路径
# …
}
return 403; # 其他路径禁止
}
只允许特定文件类型的 PHP 文件执行。
if ($request_filename ~* \.php$) {
# 允许的文件类型
# …
}
return 403; # 禁止其他文件类型
}
通过文件系统的权限设置,限制 PHP 脚本的访问。
# 设置文件的访问权限为 600 或更高
# …
}
使用 Nginx 的
map
模块来根据条件禁止 PHP 访问。default 0;
192.168.1.1 0; # 允许的 IP 地址
~^192\.168\.2\. 1; # 允许的 IP 地址范围
}
location ~ \.php$ {
if ($php_disabled) {
return 403; # 禁止访问
}
# …
}
使用 Nginx 的
geo
模块根据地理位置禁止 PHP 访问。default 0;
US 1; # 允许的国家或地区
CA 1;
}
location ~ \.php$ {
if ($allowed_country = 0) {
return 403; # 禁止访问
}
# …
}
限制只有特定的 HTTP 方法可以访问 PHP 脚本。
if ($request_method !~ ^(GET|POST)$) {
return 403; # 禁止其他方法
}
# …
}
限制只有在特定时间段内可以访问 PHP 脚本。
if ($time_iso8601 !~ “T(08|09|10|11|12|13):”) {
return 403; # 限制访问时段
}
# …
}
限制访问速率以减轻服务器负载。
limit_req zone=mylimit burst=5 nodelay;
limit_req_status 403;
# …
}
使用 Nginx 的内置变量结合条件语句来根据特定条件禁止 PHP 访问。
if ($http_cookie ~* “adminuser=”) {
return 403; # 如果包含特定 Cookie
}
# …
}
微信赞赏支付宝扫码领红包
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。侵权投诉:375170667@qq.com