您的位置:手机购彩平台 > 手机购彩平台-编程 > 慎用preg_replace危险的/e修饰符_php技巧_脚本之家

慎用preg_replace危险的/e修饰符_php技巧_脚本之家

2020-01-23 11:37

preg_replace函数原型: mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit]) 专程表达: /e 改正符使 preg_replace(卡塔尔 将 replacement 参数作为 PHP 代码。提醒:要确定保证replacement 构成二个官方的 PHP 代码字符串,不然 PHP 会在告诉在蕴藏 preg_replace(卡塔尔国 的行中现身语法分析错误。 譬如: 复制代码 代码如下: 复制代码 代码如下: function test { } echo preg_replace[/php]s*/ies", 'test; ?> 提交 ?h=[php]phpinfo会被施行吗? 分明不会。因为通过正则相配后, replacement 参数变为'test',那时phpinfo仅是被看作贰个字符串参数了。 有没有方法让它实践呢? 当然有。在那间大家借使提交?h=[php]{${phpinfo就会被奉行。为啥呢? 在php中,双引号里面借使含有有变量,php解释器会将其替换为变量解释后的结果;单引号中的变量不会被管理。 注意:双引号中的函数不会被执行和替换。 在这里间大家供给通过{${}}布局出了一个特有的变量,'test',达到让函数被施行的效劳。 能够先做如下测量检验: 复制代码 代码如下: echo "{${phpinfo(卡塔尔}}"; phpinfo会被成功推行了。 怎么着幸免这种漏洞呢? 将'test",那样‘${phpinfo(卡塔尔}'就能被看做一个经常的字符串管理。

本文由手机购彩平台发布于手机购彩平台-编程,转载请注明出处:慎用preg_replace危险的/e修饰符_php技巧_脚本之家

关键词: