php中有一个函数extract(),不少人都使用过,但是这个函数时间上存在一个小小的隐患,如果使用不当可能会造成安全上的问题。
extract定义 写道
PHP extract() 函数从数组中把变量导入到当前的符号表中。
对于数组中的每个元素,键名用于变量名,键值用于变量值。
第二个参数 type 用于指定当某个变量已经存在,而数组中又有同名元素时,extract() 函数如何对待这样的冲突。
本函数返回成功设置的变量数目。
一般第二个参数我们都会懒得设置,这样实际上存在一个变量覆盖的问题,由于这个函数的隐蔽性,很多时候我们会忽略掉它的危害性,结果就会造成黑客通过对数组元素的控制,或者说伪造,直接可以覆盖掉已经存在的某些变量,可以导致多种问题,包括本地包含漏洞,sql注入漏洞(通过这个函数很容易绕过变量检查),而且由于它的隐蔽性,很多人会忽略掉。明显的一个例子
乌云上的一个报告 写道
http://www.wooyun.org/bugs/wooyun-2010-03990
就是phpcms中的这个问题,而且通过对phpcms v9代码的查阅,里面错误使用extract的地方还有很多。这是值得程序员注意的一个问题。
分享到:
相关推荐
* PHP函数 -----函数的高级用法 课程内容 可变函数 引用函数返回值 函数的嵌套调用 函数的递归调用 回调函数 一、可变函数 一个变量的值可以为另一个变量的名称。此外,一个变量的值还可以是一个函数的名称,这就是...
它是一个没有名字的函数,常用于回调函数或需要短暂使用的简单功能: ```php $add = function($x, $y) { return $x + $y; }; echo $add(3, 4); // 输出 7 ``` 七、递归函数 递归函数是一种调用自身的函数,通常...
在PHP编程语言中,文件操作是至关重要的一个环节,它涉及到读取、写入、创建、删除、移动和复制文件等任务。这篇博客主要探讨了PHP中的文件操作函数,通过学习这些函数,开发者可以高效地处理服务器上的文件系统。...
接下来,我们将深入探讨PHP函数的使用以及如何自定义函数。 1、PHP函数介绍 PHP内建了大量的内置函数,涵盖数组处理、字符串操作、文件系统操作、数学计算等多个方面。例如,`strlen()`用于获取字符串长度,`count...
PHP 匿名函数与注意事项 PHP5.2 以前:autoload, PDO 和 MySQLi, 类型约束 PHP5.2:JSON 支持 PHP5.3:弃用的功能,匿名函数,新增魔术...现在基本上都使用PHP5.3以后的版本,但是感觉普遍一个现象就是很多新特性,过了
而"PHP函数执行超时控制扩展"则提供了一个更细粒度的解决方案,允许我们针对每个函数设置超时时间,甚至可以精确到毫秒。 该扩展在`call_user_func()`函数的基础上增加了超时控制功能。`call_user_func()`是一个...
例如,`strlen()`接受一个字符串作为参数。 3. **返回值**:描述函数执行后返回的数据类型和含义,如`strlen()`返回的是整型数值,表示字符串的长度。 4. **函数描述**:详细解释函数的功能和用途,包括可能的使用...
以下是一个简单的PHP函数示例,用于从字符串中提取最常见的单词作为关键字: ```php function extractKeywords($text) { $words = preg_split('/\s+/', $text); // 使用正则表达式分词 $wordCount = array_count_...
示例中展示了如何使用`ImageColorAllocate`来分配白色和黑色,并提供了一个辅助函数`imagecolorallocate1`,它接受十六进制颜色值并将其转换为RGB值进行分配。 4. **ImageString函数**: `ImageString`用于在图像...
比如,`foreach`循环用于遍历数组,手册会提供一个如何使用`foreach`遍历并打印数组元素的示例。 6. **注意事项**:某些函数可能有特殊的要求或限制,如内存限制、安全问题等,手册也会特别指出。例如,`include`和...
3. **ini_get_all()**:此函数返回一个包含所有配置设置及其值的关联数组。每个配置项都有三个键:`global_value`表示全局配置值,`local_value`表示脚本级别的配置值,`access`表示配置项的访问级别。这个函数在...
- **mysql_connect()**:这是PHP中用于创建一个到MySQL服务器的新连接的函数。它接受主机名、用户名和密码作为参数。如果连接成功,它将返回一个资源句柄,否则返回FALSE。例如: ```php $conn = @mysql_connect...
首先,找到字符串中的最后一个空格,然后截取到该位置。例如: ```php function truncateWithWordBoundary($str, $length) { if(strlen($str) $length) return $str; $lastSpacePos = strrpos(substr($str, 0, $...
此函数用于将一个文件的内容转换成HTML格式并保存为新的文件。 **函数定义**: ```php function phptohtm($filefrom, $fileto, $u2u = 1) { if ($u2u == 1) { $data = PHP_Read($filefrom); } else { $data = $...
从给定的文件标题“PHP函数索引 967 个函数”和描述“php常用函数的查询,PHP函数索引 967 个函数”,我们可以看出这份文档是关于PHP编程语言中的函数大全,涵盖了967个常用的PHP函数。下面,我们将对部分列出的函数...
《即用即查PHP函数参考手册》...通过这个压缩包中的《PHP函数手册》,开发者不仅可以了解到PHP函数的详细用法,还能结合源码实例加深理解,提升实际编程技能。无论是初学者还是经验丰富的开发者,都可以从中受益匪浅。
`dl()`函数是PHP中的一个内置函数,用于动态加载PHP扩展模块。通常情况下,PHP扩展是在编译时通过配置选项添加到PHP核心中的。然而,在某些情况下,可能需要在运行时动态加载这些扩展。这时,`dl()`函数就派上了用场...
下面我们将深入探讨PHP函数的使用及其重要性,以及可能包含的一些常见函数类型。 1. **函数的基本概念与创建** PHP中的函数可以通过`function`关键字来定义。例如: ```php function sayHello() { echo "你好, ...
在这个场景中,"php 操作 Excel的函数库"是一个关键的知识点,它意味着我们将探讨如何在PHP中使用特定的库来与Excel文件交互。 首先,我们可以考虑使用PHP的PHPExcel库,这是一个非常流行的用于处理Excel文件的开源...