首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >nginx禁止访问php的各种形式

nginx禁止访问php的各种形式

作者头像
友儿
发布于 2023-10-21 05:54:50
发布于 2023-10-21 05:54:50
1.1K00
代码可运行
举报
文章被收录于专栏:友儿友儿
运行总次数:0
代码可运行
禁止访问PHP脚本可以通过Nginx服务器配置中的多种方式来实现。以下是其中的一些常见方法,您可以根据实际需求选择合适的方式:

禁用PHP解析(在Nginx配置中,确保PHP脚本无法被解析,从而禁止PHP执行。)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
location ~ \.php$ {
deny all;
}

限制访问路径(限制只允许访问特定路径下的PHP脚本,其他路径禁止。)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
location /public {
  # 允许访问 /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;
}

使用HTTP Basic认证(要求用户提供用户名和密码以访问PHP脚本。)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
location ~ \.php$ {
  auth_basic "Restricted";
  # 使用 htpasswd 生成密码文件
  auth_basic_user_file /etc/nginx/.htpasswd;
# ...
}

IP地址访问控制(限制只有特定的IP地址可以访问PHP脚本)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
location ~ \.php$ {
  allow 192.168.1.1; # 允许的 IP 地址
  deny all; # 禁止其他 IP 地址
  # ...
}

Referer 检查(检查HTTP Referer头,只允许特定来源的请求。)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
location ~ \.php$ {
  valid_referers none blocked example.com; # 允许的 Referer
  if ($invalid_referer) {
  return 403; # 拒绝无效的 Referer
  }
  # ...
}

User-Agent检查(检查User-Agent头,只允许特定User-Agent访问。)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
location ~ \.php$ {
  if ($http_user_agent ~* (bad-agent|another-bad-agent)) {
  return 403; # 拒绝不良 User-Agent
  }
  # ...
}

URL匹配(通过正则表达式匹配URL,只允许特定URL访问PHP。)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
location ~ \.php$ {
  if ($request_uri ~* ^/allowed-path/) {
      # 允许的 URL 路径
      # ...
  }
  return 403; # 其他路径禁止
}

文件类型匹配(只允许特定文件类型的PHP文件执行。)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
location ~ \.php$ {
  if ($request_filename ~* \.php$) {
          # 允许的文件类型
          # ...
  }
  return 403; # 禁止其他文件类型
}

设置文件权限(通过文件系统的权限设置,限制PHP脚本的访问。)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
location ~ \.php$ {
  # 设置文件的访问权限为 600 或更高
  # ...
}

利用Nginx的map模块(使用Nginx的map模块来根据条件禁止PHP访问。)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
map $remote_addr $php_disabled {
  default 0;
  192.168.1.1 0; # 允许的 IP 地址
  ~^192\.168\.2\. 1; # 允许的 IP 地址范围
}
location ~ \.php$ {
  if ($php_disabled) {
  return 403; # 禁止访问
}
  # ...
}

利用Nginx的geo模块(使用Nginx的geo模块根据地理位置禁止PHP访问。)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
geo $allowed_country {
  default 0;
  US 1; # 允许的国家或地区
  CA 1;
}

location ~ \.php$ {
  if ($allowed_country = 0) {
      return 403; # 禁止访问
  }
  # ...
}

禁止特定HTTP方法 (限制只有特定的HTTP方法可以访问PHP脚本)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
location ~ \.php$ {
  if ($request_method !~ ^(GET|POST)$) {
      return 403; # 禁止其他方法
  }
  # ...
}

限制访问时间(限制只有在特定时间段内可以访问PHP脚本。)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
location ~ \.php$ {
  if ($time_iso8601 !~ "T(08|09|10|11|12|13):") {
      return 403; # 限制访问时段
  }
  # ...
}

HTTP访问速率限制(限制访问速率以减轻服务器负载。)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
location ~ \.php$ {
  limit_req zone=mylimit burst=5 nodelay;
  limit_req_status 403;
  # ...
}

使用Nginx内置变量(使用Nginx的内置变量结合条件语句来根据特定条件禁止PHP访问。)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
location ~ \.php$ {
  if ($http_cookie ~* "adminuser=") {
      return 403; # 如果包含特定 Cookie
  }
  # ...
}
请注意,上述方法可以单独使用或组合使用,具体的选择取决于您的安全需求和服务器配置。同时,确保在配置中使用适当的测试和调试方法,以确保您的 Nginx 服务器按照预期运行。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
JVM 八股之首:三大垃圾收集算法
前文介绍过,基于分代收集理论的指导,我们才可以针对堆中不同的区域,设计出不同的垃圾收集算法,主要有以下三种:
飞天小牛肉
2022/05/24
1.2K0
JVM 八股之首:三大垃圾收集算法
深入理解谷歌最强V8垃圾回收机制
有很多人都听说过V8引擎,但可能不是很了解,V8名称叫Chrome V8,是由谷歌开源的一个高性能 JavaScript 引擎。该引擎采用 C++ 编写,Google Chrome 浏览器用的就是这个引擎。V8 可以单独运行,也可以嵌入 C++ 应用当中。和其他的 JavaScript 引擎一样,V8 会编译、执行 JavaScript 代码,并一样会管理内存、垃圾回收等。就是因为 V8 的高性能以及跨平台等特性,所以它也是 Node.js 的 JavaScript 引擎。
zz_jesse
2020/10/09
1.1K0
深入理解谷歌最强V8垃圾回收机制
持续3分钟 - Java -04
在 Java 中,引用和对象是有关联的。如果要操作对象则必须用引用进行。因此,很显然一个简单 的办法是通过引用计数来判断一个对象是否可以回收。简单说,即一个对象如果没有任何与之关 联的引用,即他们的引用计数都不为 0,则说明对象不太可能再被用到,那么这个对象就是可回收 对象。
子乾建建-Jeff
2020/06/29
2980
持续3分钟 - Java -04
深入浅出NodeJS随记 (二)
最近在研读书籍 深入浅出nodejs , 随手写下的一些笔记, 和大家分享~ 如有错误,欢迎指正~
邱邱邱邱yf
2021/12/10
4850
理解 Node.js 的 GC 机制
随着 Node 的发展,JavaScript 的应用场景早已不再局限在浏览器中。本文不讨论网页应用、命令行工具等短时间执行,且只影响终端用户的场景。由于运行时间短,随着进程的退出,内存会释放,几乎没有内存管理的必要。但随着 Node 在服务端的广泛应用,JavaScript 的内存管理需要引起我们的重视。
超超不会飞
2020/09/18
2K0
理解 Node.js 的 GC 机制
jvm之垃圾回收清除算法解读
标记-清除算法(Mark-Sweep)是一种非常基础和常见的垃圾收集算法,该算法被J.McCarthy等人在1960年提出并并应用于Lisp语言。
一个风轻云淡
2023/10/15
3940
jvm之垃圾回收清除算法解读
JVM系列二(垃圾收集算法).
这种算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象。
JMCui
2019/12/17
3870
深入理解 Java 虚拟机 - 你了解 GC 算法原理吗
对于JVM的垃圾收集(GC),这是一个作为Java开发者必须了解的内容,那么,我们需要去了解哪些内容呢,其实,GC主要是解决下面的三个问题:
好好学java
2019/12/25
6080
深入理解 Java 虚拟机 - 你了解 GC 算法原理吗
九、垃圾回收算法
标记-清除算法是最基础的垃圾回收算法。后续的收集算法都是基于这种思路并对其不足进行改进得到的。 算法分为两个阶段: 1. 标记:首先标记出所有需要回收的对象(具体可见参见之前的博文) 2. 清除:在标记完成后统一回收被标记的对象
栋先生
2018/09/29
3960
九、垃圾回收算法
垃圾回收机制
完整高频题库仓库地址:https://github.com/hzfe/awesome-interview
HZFEStudio
2021/09/19
5720
Java JVM虚拟机
Java Source File compile 之后生成 .Class文件(字节码文件), .Class文件 Interpret 之后生成 机器码被电脑使用
JiahuiZhu1998
2022/11/23
5780
010. 深入JVM学习—垃圾收集策略概览
1. 新生代可用GC策略 ---- 1. 串行GC(Serial Copying) 算法:复制(Copying)清理算法; 操作步骤: 扫描年轻代中所有存活的对象; 使用Minor GC进行垃圾回收,同时将存活对象保存到“S0”或“S1”区; 在上一次Minot GC的基础上进行“S0”和“S1”区的角色交换; *经历过许多次Minor GC依然存活的对象晋升到老年代。 2. 并行回收GC(Parallel Scavenge) 算法:复制(Copying)清理算法; 操作步骤:在扫描和复
山海散人
2021/03/03
4470
010. 深入JVM学习—垃圾收集策略概览
深入浅出JVM(十二)之垃圾回收算法
这里推荐一篇有关Spring Boot自动装配的文章:一文彻底弄懂 Spring Boot 自动装配的过程!深入探索与案例解析 文章以@SpringBootApplication注解作为入口,分析其自动装配的核心原理、优缺点,以及扩展根据条件加载,并总结使用案例
菜菜的后端私房菜
2024/11/21
1540
JVM 调优 2:GC 如何判断对象是否为垃圾,三色标记算法应用原理及存在的问题?
本文进入我们进入 JVM 调优系列 2,GC 如何判断对象是否为垃圾,这个是面试中的高频面试题,同时对于 GC 的三色标记算法属于 GC 算法的核心内容,我们将通过算法的应用原理进行深度剖析并分析存在的问题,由此来得出 GC 的制定机制是什么?这里就不再强调重点了,因为到处都是重点!
白鹿第一帅
2022/05/08
6160
JVM 调优 2:GC 如何判断对象是否为垃圾,三色标记算法应用原理及存在的问题?
JVM 调优系列 2:GC 如何判断对象是否为垃圾,三色标记算法应用原理及存在的问题
本文进入我们进入 JVM 调优系列 2,GC 如何判断对象是否为垃圾,这个是面试中的高频面试题,同时对于 GC 的三色标记算法属于 GC 算法的核心内容,我们将通过算法的应用原理进行深度剖析并分析存在的问题,由此来得出 GC 的制定机制是什么?这里就不再强调重点了,因为到处都是重点!
白鹿第一帅
2021/03/21
8590
JVM 调优系列 2:GC 如何判断对象是否为垃圾,三色标记算法应用原理及存在的问题
《深入浅出Node.js》-内存控制
本章学习 V8 的垃圾回收机制以及如何高效使用内存,内存泄漏以及如何排查内存泄漏。
李振
2021/11/26
9730
【面经分享,附答案】字节系统架构,一面,后端开发
以后发面经我都会尽量带上我的答案(蓝色引用框中的就是),不过不会写得那么详细,大概就是写一下如果我答的话具体逻辑是怎么样的,关键词啥的。有些我觉得不是很常见或者暂时不知道咋回答的题目,会加粗显示出来,也欢迎小伙伴们和我交流
飞天小牛肉
2022/11/08
8180
【面经分享,附答案】字节系统架构,一面,后端开发
java中垃圾回收机制_垃圾回收机制算法
这一小节先了解一个最基本的问题:如果确定某个对象是“垃圾”?既然垃圾收集器的任务是回收垃圾对象所占的空间供新的对象使用,那么垃圾收集器如何确定某个对象是“垃圾”?通过什么方法判断一个对象可以被回收了。
全栈程序员站长
2022/11/08
6080
java中垃圾回收机制_垃圾回收机制算法
垃圾回收机制重新整理篇
在Java中,引用和对象是有关联的。如果要操作对象则必须用引用进行。因此,很显然一个简单的办法是通过引用计数来判断一个对象是否可以回收。简单说,即一个对象如果没有任何与之关联的引用,则说明对象不太可能再被用到,那么这个对象就是可回收对象。这种方式即是引用计数法。这种方式的问题是无法解决循环引用的问题,举个例子:
小勇DW3
2018/09/29
4420
垃圾回收机制重新整理篇
Java垃圾回收机制(转)
 说到垃圾回收(Garbage Collection,GC),很多人就会自然而然地把它和Java联系起来。在Java中,程序员不需要去关心内存动态分配和垃圾回收的问题,这一切都交给了JVM来处理。顾名思义,垃圾回收就是释放垃圾占用的空间,那么在Java中,什么样的对象会被认定为“垃圾”?那么当一些对象被确定为垃圾之后,采用什么样的策略来进行回收(释放空间)?在目前的商业虚拟机中,有哪些典型的垃圾收集器?下面我们就来逐一探讨这些问题。以下是本文的目录大纲:
Dawnzhang
2018/10/18
3740
Java垃圾回收机制(转)
推荐阅读
相关推荐
JVM 八股之首:三大垃圾收集算法
更多 >
交个朋友
加入腾讯云官网粉丝站
蹲全网底价单品 享第一手活动信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档