首页 > 其他分享 >代码执行详解

代码执行详解

时间:2024-09-04 15:22:51浏览次数:9  
标签:func 函数 详解 call 代码执行 数组 array

代码执行定义

        应用程序在调用一些能够将字符串转换为代码的函数(如PHP中的eval)时,没有考虑用户是否控制这个字符串,将造成代码执行漏洞。

代码执行的原理

        应用程序本身过滤不严, 用户可以通过请求将代码(代码字符串)注入到应用中执行。

代码执行相关函数

1、eval      //将字符串当做函数进行执行需要传入一个完整的语句必须以分号。

2、assert    //判断是否为字符串是则当成代码执行在php7.0.29之后的版本不支持动态调用

3、call_user_func()    //回调函数call_user_func这个函数可以调用其它函数,被调用的函数是call_user_func的第一个函数,被调用的函数的参数是call_user_func的第二个参数。

4、call_user_func_array    //把第一个参数作为回调函数调用, 后续参数作为回调函数的参数传入。call_user_func_array 与 call_user_func 这两个函数基本上是相似的,只是在调用传递参数时存在一些差异。

5、create_function()函数    //把用户传递的数据生成一个函数fun(),然后再执行fun() create_function内部会使用eval,将传入的字符串进行eval得到函数体,在执行该函数。

6、array_map()函数    //函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新值的数组。 回调函数接受的参数数目应该和传递给 array_map() 函数的数组数目一致。

7、array_map()函数    //函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新值的数组。回调函数接受的参数数目应该和传递给 array_map() 函数的数组数目一致

8、array_filter()函数    //依次将array 数组中的每个值传递到 callback 函数。如果callback函数返回true,则array数组的当前值会被包含在返回的结果数组中。

9、preg_replace()函数    //这个函数原本是利用正则表达式替换符合条件的字符串,但是这个函数有一个功能——可执行命令。

10、uasort()函数    //函数是 PHP 中用于对关联数组(associative array)进行排序的函数。这个函数用于自定义排序规则,允许你按照自己的需求对数组元素进行排序。

11、execute()函数    //执行一个来自于其他ASP文件内部的ASP程序。当其他ASP文件内的程序被请求执行完毕之后,控制器将返回最初发出请求的原始ASP文件.

代码执行的防御

1、禁用或减少使用执行代码的函数

2、对于必须使用eval的地方,一定严格处理用户数据

3、使用addslashes()函数将参数转译,或使用黑白名单校验

4、限制Web用户的权限

5、升级插件、框架新版本

代码执行与命令执行的区别

1、涉及到的函数不同

2、执行的方式不同

标签:func,函数,详解,call,代码执行,数组,array
From: https://blog.csdn.net/m0_65409532/article/details/141893147

相关文章

  • sar -d 命令详解
    sar-d是sar命令中的一个选项,用于显示磁盘I/O统计信息。它提供有关磁盘设备读写操作的详细信息,有助于监控磁盘性能和识别潜在的I/O瓶颈。sar-d命令详解基本用法sar-d[interval][count]interval:指定数据收集的时间间隔(秒)。count:指定收集的数据条数。如果不提......
  • Linux之curl详解
    curl是一个非常强大的命令行工具,用于发送和接收数据,支持多种协议,如HTTP、HTTPS、FTP等。它被广泛用于测试、调试Web接口以及自动化脚本中。下面是对curl的详细解释,包括其基本用法和一些高级特性。基本用法发送HTTPGET请求bashcurlhttp://example.com这个命令会......
  • STM32的窗口看门狗详解及案例(基于HAL库)
    目录一、引言二、窗口看门狗的工作原理1.基本概念2.功能描述3.窗口值和计数器初始值三、STM32F429HAL库中窗口看门狗的配置步骤1.开启时钟2.初始化窗口看门狗 3.开启早期唤醒中断4.喂狗操作 四、窗口看门狗的应用场景 1.防止软件死锁2.检测外部干扰3.提高......
  • 1.18 标识解析体系详解
    今天讲解了系统集成项目管理工程师教程视频课程(第3版)所涉及的标识解析体系相关的考试知识点,想通过考试的朋友可以点击链接,看完整版。......
  • 详解ISP代理与住宅代理的主要区别
    在互联网的世界里,代理IP扮演着重要的角色。无论是为了保护隐私,还是为了进行市场调研,代理IP的应用场景都十分广泛。而在代理IP中,ISP代理和住宅代理是两种常见的类型。今天,我们就来聊聊这两种代理的主要区别,看看它们各自的优势和适用场景。什么是ISP代理?ISP代理,全称为互联网服......
  • 图像边缘检测技术详解:利用OpenCV实现Sobel算子
    图像边缘检测技术详解:利用OpenCV实现Sobel算子前言Sobel算子的原理代码演示结果展示结语前言  在数字图像处理的广阔领域中,边缘检测技术扮演着至关重要的角色。无论是在科学研究、工业自动化,还是在日常生活中的智能设备中,我们都需要从图像中提取有用的信息。边缘,作......
  • 动态内存分配之realloc()函数详解
    目录一、函数简介二、函数原型参数返回值三、函数实现(伪代码)3.1.简化的realloc实现逻辑3.2.伪代码示例四、使用场景4.1.动态数组大小调整4.2.动态字符串大小调整4.3.内存优化4.4.复杂数据结构的内存管理4.5.跨函数内存管理4.6.灵活的内存分配策略五、......
  • 【技术详解】Java泛型:全面解析与实战应用(进阶版)
    文章目录Java泛型:全面解析与实战应用1.引言1.1什么是Java泛型?1.2泛型的历史背景1.3泛型的重要性与优势2.泛型的基本概念2.1类型参数2.2泛型类2.3泛型方法2.4泛型接口2.5泛型擦除3.创建和使用泛型类3.1定义一个简单的泛型类3.2使用泛型类3.3泛型类的类型......
  • 09J621-2《电动采光排烟天窗》技术详解
    09J621-2《电动采光排烟天窗》图集是建筑通风排烟设计中的重要参考资料,是对04J621-2《电动采光排烟天窗》的修编,发行于2009年12月。该图集提供了五种类型的电动采光排烟天窗,包括三角形、一字形、圆拱形、避风形以及侧开形,以满足不同建筑的需求。一、天窗类型及特点(一)三角形......
  • Spring Boot中的自定义事件详解与实战
    一、Spring事件机制概述1.1什么是Spring事件Spring事件机制是一种基于发布-订阅模式的事件驱动机制,允许组件之间进行松散耦合的通信。通过发布事件,其他监听该事件的组件能够做出响应,从而实现不同模块之间的协作。Spring事件的核心概念包括以下三个部分:事件(Event):表示发......