xss中的函数
echo输出一个或多个字符串// 1. 输出单个echo Hello PHP;// 2. 输出多个echo Hello, , World; // 输出 Hello World// 3. 输出变量$name Alice;echo My name is $name;var_dump打印变量的详细信息类型与值$arr [name zhangsan, age 18];$bool false;var_dump($arr, $bool);include/require包含并运行指定文件// 标准用法include header.php;require config/database.php;// 带 once保证只引入一次防止函数重定义include_once lib/helper.php;require_once core/init.php;phpinfo输出关于 PHP 配置的详细信息// 输出全部信息最常用phpinfo();// 只输出模块信息更快phpinfo(模块);eval()将字符串当作PHP代码执行$code echo Hello World!;;eval($code); // 输出Hello World!// 危险场景用户传入$user_input $_GET[cmd]; // 假设用户传入: phpinfo();eval($user_input); // 直接执行 phpinfo()服务器沦陷assert()可执行任意代码// 正常用法检查布尔值assert(1 0); // 无输出通过// 高危用法字符串当作代码执行$code var_dump(123);;assert($code); // 输出: int(123)// 危险场景用户控制断言内容$_GET[flag] system(whoami);assert($_GET[flag]); // 执行系统命令preg_replace()使用/e修饰符时第二个参数会被当作代码执行// 高危写法PHP 5.6及以下有效$pattern /^(.*)$/e;$replacement strtoupper(\\1); // 这里的代码会被执行$subject hello;echo preg_replace($pattern, $replacement, $subject); // 输出: HELLO// 漏洞利用用户控制 pattern 或 replacement 即可注入代码create_function()创建匿名函数参数可被注入代码// 创建一个加法函数$func create_function($a,$b, return $a $b;);echo $func(5, 3); // 输出: 8// 漏洞利用注入代码$inject }system(id);//;$func2 create_function($a, echo $a; . $inject);// 实际生成的函数体为: function($a){ echo $a; }system(id);// }$func2(test); // 执行了 system(id)scandir()列出指定目录的文件和目录// 读取当前目录$files scandir(.);print_r($files);/* 输出示例:Array ([0] .[1] ..[2] index.php[3] config.ini) */// 读取指定路径危险场景$path $_GET[dir]; // 用户输入: ../../etc/$list scandir($path);array_filter()用回调函数过滤数组元素// 例1过滤出大于 0 的数保留原键名$arr [-1, 0, 1, 2];$filtered array_filter($arr, function($v) {return $v 0;});print_r($filtered); // [2 1, 3 2] 注意索引保留了 2 和 3// 例2不传回调去掉空值$data [a, , null, 0, b];$clean array_filter($data);print_r($clean); // [0 a, 4 b]array_map()为数组的每个元素应用回调函数// 例1将每个数字平方$nums [1, 2, 3];$result array_map(function($v) {return $v * $v;}, $nums);print_r($result); // [1, 4, 9]// 例2同时处理两个数组回调接收两个参数$arr1 [1, 2];$arr2 [10, 20];$sums array_map(function($a, $b) {return $a $b;}, $arr1, $arr2);print_r($sums); // [11, 22]array_key_exists()检查数组中是否存在某个键名$arr [name John, age null];var_dump(array_key_exists(name, $arr)); // bool(true)var_dump(array_key_exists(age, $arr)); // bool(true) 即使值是 null键依然存在var_dump(array_key_exists(gender, $arr)); // bool(false)function_exists()检查函数是否已定义bool function_exists(string $function_name)call_user_func以回调函数的形式去调用另一个你定义的函数// 1. 调用普通函数function add($a, $b) {return $a $b;}echo call_user_func(add, 5, 3);// 2. 调用类的方法class Math {public static function square($n) {return $n * $n;}public function cube($n) {return $n * $n * $n;}}// 静态方法两种写法echo call_user_func([Math, square], 3);echo call_user_func(Math::square, 3);// 非静态方法传对象实例$obj new Math();echo call_user_func([$obj, cube], 3);// 3. 调用匿名函数echo call_user_func(function($x) { return $x * 2; }, 10);

相关新闻

如何快速部署开源VR流媒体方案:完整配置指南

如何快速部署开源VR流媒体方案:完整配置指南

如何快速部署开源VR流媒体方案:完整配置指南 【免费下载链接】ALVR Stream VR games from your PC to your headset via Wi-Fi 项目地址: https://gitcode.com/gh_mirrors/al/ALVR ALVR是一个强大的开源虚拟现实流媒体工具,让你能够通过Wi-Fi将PC…

2026/10/30 4:16:08 阅读更多 →
如何判断数学建模质量好坏

如何判断数学建模质量好坏

如何判断数学建模质量好坏 一、引言 数学建模是将现实问题抽象为数学表达式并求解的过程,广泛应用于工程设计、经济管理、公共卫生、生态科学等领域。然而,“建了模"并不等于"建了好模”。一个数学模型是否优秀,不能仅凭直觉判断&a…

2026/10/30 8:56:52 阅读更多 →
Linux Optimizer深度解析:12大核心功能让你的VPS性能飙升

Linux Optimizer深度解析:12大核心功能让你的VPS性能飙升

Linux Optimizer深度解析:12大核心功能让你的VPS性能飙升 【免费下载链接】Linux-Optimizer Linux Optimizer 项目地址: https://gitcode.com/gh_mirrors/li/Linux-Optimizer Linux Optimizer是一款强大的Bash脚本工具,专为Linux服务器环境&#…

2026/10/28 20:08:39 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/2 0:25:10 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/1 10:36:53 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/1 10:36:51 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/2 1:16:51 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/1 10:35:11 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/1 9:35:41 阅读更多 →

日新闻

周新闻

月新闻