专栏首页陶士涵的菜地[PHP] create_function() 代码注入问题已经被弃用

[PHP] create_function() 代码注入问题已经被弃用

在某些老的框架或者cms中还在应用这个函数 , 建议是换成普通的原生匿名函数

官方文档的解释:

此函数在内部执行eval(),因此具有与eval()相同的安全性问题。此外,它还具有不良的性能和内存使用特性。 如果您使用的是PHP 5.3.0或更高版本,则应使用原生匿名函数。

例如下面的代码 , 有见到用create_function做的 , 换成下面这样

echo preg_replace_callback('~-([a-z])~', function ($match) {
    return strtoupper($match[1]);
}, 'hello-world');
// 输出 helloWorld

匿名函数的一些解释和用法:

匿名函数(Anonymous functions),也叫闭包函数(closures),允许 临时创建一个没有指定名称的函数。最经常用作回调函数(callback)参数的值。当然,也有其它应用的情况。 匿名函数目前是通过 Closure 类来实现的。 从父作用域中继承变量。 都应该用 use 语言结构传递进去比如下面这个:

$message = 'hello';
// 继承 $message
$example = function () use ($message) {
    var_dump($message);
};
echo $example();

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • [Python]Python 列表(List)

    序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。 Python有6个序列的...

    陶士涵
  • [PHP] PHP闭包(closures)

    陶士涵
  • [PHP] PHP 7.4.5的错误修复

    PHP 7.4.5的错误修复 修复了错误#79364(复制空数组时,未指定下一个键)。 修复了错误#78210(无效的指针地址)。 curl: 修复了错误#79...

    陶士涵
  • 这是我的10分钟 js 入门笔记

    别问做算法和数据分析的,怎么还学js. 工作了需要啥都得学,还得快。这就是互联网,适者生存,劣者淘汰。

    double
  • 从 redux 的纯函数到函数式编程

    在做业务时我们用 react + redux 框架,其中 redux 的 reducers 是用的纯函数。这里什么是纯函数?为什么要用纯函数?纯函数的好处是什么...

    腾讯IVWEB团队
  • MySQL字符串中抽取数值的方法

    MySQL的字符串函数非常多,以至于有时候我不知道该如何灵活的使用这些函数。 字符串基本信息函数 collation convert,char_len...

    jeanron100
  • 机器学习系列13:机器学习诊断法

    在机器学习中,我们训练了一个模型,可能会发现这个模型得到的数据与实际数据偏差太大。这时,通常我们会在如下办法中选择去优化我们的算法。

    SuperFeng
  • 在jsp页面里面设置全局引用文件

    祈澈菇凉
  • 微信小程序Ⅵ [wx.request 的回调使用]

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/de...

    泥豆芽儿 MT
  • 2015.12.17 HTML5真题练习

    HTML5学堂:每天一道题,强壮程序员!今日主要涉及12.16日关于函数返回值的题目解答,以及一道涉及闭包的题目。 HTML5真题【2015.12.16】答案解...

    HTML5学堂

扫码关注云+社区

领取腾讯云代金券