php代码安全审计:易出现脆弱点的函数

2023年 7月 10日 62.7k 0

phpinfo()函数

输出 PHP 当前状态的大量信息,包含了 PHP 编译选项、启用的扩展、PHP 版本、服务器信息和环境变量(如果编译为一个模块的话)、PHP环境变量、操作系统版本信息、path 变量、配置选项的本地值和主值、HTTP 头和PHP授权信息(License)。

phpinfo() 同时是个很有价值的、包含所有 EGPCS(Environment, GET, POST, Cookie, Server) 数据的调试工具。

软连接-读取文件内容

bool symlink ( string $target , string $link ) symlink() 对于已有的 target 建立一个名为 link 的符号连接。

readlink — 返回符号连接指向的目标 string readlink ( string $path ) readlink() 和同名的 C 函数做同样的事,返回符号连接的内容。

环境变量

string getenv ( string $varname ) 获取一个环境变量的值。

bool putenv ( string $setting ) 添加 setting 到服务器环境变量。环境变量仅存活于当前请求期间。在请求结束时环境会恢复到初始状态。

加载扩展

bool dl ( string $library ) 运行时载入一个 PHP 扩展,载入指定参数 library 的 PHP 扩展。

配置相关

string ini_set ( string $varname , string $newvalue )

成功时返回配置选项的值。

string ini_alter ( string $varname , string $newvalue ) 设置指定配置选项的值。这个选项会在脚本运行时保持新的值,并在脚本结束时恢复。

void ini_restore ( string $varname ) 恢复指定的配置选项到它的原始值。

数字判断

bool is_numeric ( mixed $var ) 如果 var 是数字和数字字符串则返回 TRUE,否则返回 FALSE。 仅用is_numeric判断而不用intval转换就有可能插入16进制的字符串到数据库,进而可能导致sql二次注入。

数组相关

bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] ) 在 haystack 中搜索 needle,如果没有设置 strict 则使用宽松的比较。 该函数有一个特性,比较之前会进行自动类型转换。 $a = '1abc'; in_array($a,array(1,2,3))的返回值会是真。

变量覆盖

void parse_str ( string $str [, array &$arr ] ) 如果 str 是 URL 传递入的查询字符串(query string),则将它解析为变量并设置到当前作用域。

int extract ( array &$var_array [, int $extract_type = EXTR_OVERWRITE [, string $prefix = NULL ]] ) 本函数用来将变量从数组中导入到当前的符号表中。检查每个键名看是否可以作为一个合法的变量名,同时也检查和符号表中已有的变量名的冲突。

bool mb_parse_str ( string $encoded_string [, array &$result ] ) 解析 GET/POST/COOKIE 数据并设置全局变量。由于 PHP 不提供原始 POST/COOKIE 数据,目前它仅能够用于 GET 数据。它解析了 URL 编码过的数据,检测其编码,并转换编码为内部编码,然后设置其值为 array 的 result 或者全局变量。

bool import_request_variables ( string $types [, string $prefix ] ) 将 GET/POST/Cookie 变量导入到全局作用域中。如果你禁止了 register_globals,但又想用到一些全局变量,那么此函数就很有用。

相关文章

Mallox勒索软件新Linux变种现世
伪装成破解程序和商业工具的新型恶意软件正在传播
Orcinius后门新样本分析
Poseidon窃取程序通过Google广告感染Mac用户
大选开始之际,欧盟各政党遭受 DDoS 攻击
微软2024

发布评论