首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何修复PHP的GD库漏洞

最近有关于台湾大神爆出的PHP的GD库漏洞,该漏洞可通过上传构造后的GIF图片,可直接导致CPU资源耗尽,直至宕机。...该漏洞是由于GD图形库中的gd_git_in.c具有整数签名错误,通过特殊构造的GIF文件使程序在调用imagecreatefromgif或imagecreatefromstring的PHP函数时导致无限循环...以下只通过CentOS系统描述: 首先确认之前的PHP是通过rpm包安装的,还是通过编译安装的,若是通过rpm包安装的,需要确认是通过哪个源安装的,确认方法: rpm -qa |grep php 如果什么都没有出现...复制编译参数,解压之前下载的最新源码包,用之前的编译参数重新编译php,这里注意修改prefix参数的值,不然覆盖掉原来的php了,还需要检查一下是否有之后添加的扩展,也需要重新添加。...完成后,通过php -m参数对比两个版本的php的扩展,是否一致,若一致,则可以将php迁移到最新版本的php了。 欢迎分享和关注,运维实谈,不定期分享纯干货!

2K20

Windows环境下php开启GD库的方法

一、GD库是什么?   GD库是php处理图形的扩展库,GD库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片,也可以给图片加水印。...如果使用二者之间版本的 GD 库时 GIF 相关函数不可用。 本文介绍下,在windows下开启php GD库的方法,GD库在php中默认是没有开启的,如果想让它支持图片处理功能,必须手动开启。...二、开启GD库的方法   在php.ini中把extension=php_gd2.dll 去掉前面的;即可。...在windows服务器开启php的gd库时,使用cgi之后phpinfo()得到的结果中 Configure Command 中并没有出现gd....将php.ini文件找到extension=php_gd2.dll 去掉前面的;就行了。 检测是否已经安装好GD库的方法,代码如下: 1 <?

2.9K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Centos php 扩展方式安装gd库的方法

    网站的第二台服务器跑的的环境主要是Python/Ruby,有时也需要简单跑跑PHP脚本,所以也安装了PHP,环境是Nginx+php-fpm,PHP是源码编译安装的,所以是最小化安装,甚至连mysqli...今天需要用到GD库,才发现没GD库环境,所以需要安装这个扩展。对付单个扩展,单独编译动态加载是比较方便快捷的。安装过程也比较繁杂,这个记录一下,方便后来者。...首先说明,我的PHP是源码编译安装的,可以参看 以源码编译的方式安装PHP与php-fpm。 先安装 gd 前置库 : freetype ,jpegsrc,libpng。.../configure --prefix=/usr/local/libpng && make && make install 复制代码 接下来需要cd到php源码的 gd 目录,否则会报 cannot find.../local/php/bin/php -m [PHP Modules] Core ctype date dom ereg fileinfo filter gd …… 复制代码 看到gd了,说明gd库安装成功

    1.5K10

    一起学习PHP中GD库的使用(一)

    一起学习PHP中GD库的使用(一) 又到了一个大家非常熟悉的库了,对于图像图形的处理来说,GD 库是 PHPer 们绕不过去的一道坎。...从很早很早的 CMS 或者 Discuz 时代,各类开源软件在安装的时候就会明确地指出 GD 库是它们必备的一个扩展。当然,在现在的 PHP 版本中,相信大家也不会在编译的时候忽略掉这个库。...不管你是为图片加水印、生成缩略图还是制作验证码图片,都离不开 GD 库的身影。 当然,我们还是由浅入深地学习一些 GD 库中的常用或好玩的函数。...当前环境中的 GD 库信息 首先,我们可以查看下当前 PHP 环境中的 GD 库版本及支持的图片格式信息。...测试代码: https://github.com/zhangyue0503/dev-blog/blob/master/php/202012/source/1.一起学习PHP中GD库的使用(一).php

    1.2K40

    Centos7下PHP安装gd库的实例讲解

    下面小编就为大家分享一篇Centos7下PHP安装gd库的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 Centos7下安装php, 或php的gd库支持,都是很简单的。...yum install php-gd 以上命令就搞定php-gd的支持,快快看看phpinfo是否支持了?...可是,如果需要采用不同版本的php时,那就是相当的麻烦,经过摸索,笔者找到了一个较为简单的方式。 由于需要与系统原生版本共存多个php版本,那么你要求的版本必须采用源码编译。...(如果有其他办法,请记得回复告知一下我) 那么,编译php-gd的支持,网上大多都是通过编译freetype, libpng, libjpeg…好复杂,笔者通过一一尝试,发现还是不成功!!!!...(通过查看自己编译的动态库文件的依赖关系ldd libgd.so.2) 注意:如果通过自己编译源码的方式,你成功的在源码版本的php中看到了gd支持png,那么恭喜你,你太幸运了。

    3.9K10

    Java8 的 String Concatenate 比 StringBuilder Apporaches 慢?

    问题1: 文章说,大量 String + 连接比 通过 相应的StringBuilder 连接慢,要是在 Java7 之前我信,可以在 Java8 以及之后,编译器自动帮助我们把 + 优化成 StringBuilder...难道 Java8 的 String Concatenate 比 StringBuilder (StringBuffer) 慢?带着这样的疑问,决定好好的亲自试验一番。...,特别是成为 热代码 之后,少量的字符串连接的差距就更显现不出来了。...goto 14 # for 循环结束 # 在 for 循环结束和开始当中,每遍历一次都会创建一个 StringBuilder 对象,与下面的代码相比这就是速度慢的地方...这也就解释了明明编译器自动帮助我们把 + 优化成 StringBuilder 了却还是 比 StringBuilder 慢的原因。

    64110

    Java8 的 String Concatenate 比 StringBuilder Apporaches 慢?

    问题1: 文章说,大量 String + 连接比 通过 相应的StringBuilder 连接慢,要是在 Java7 之前我信,可以在 Java8 以及之后,编译器自动帮助我们把 + 优化成 StringBuilder...难道 Java8 的 String Concatenate 比 StringBuilder (StringBuffer) 慢?带着这样的疑问,决定好好的亲自试验一番。...,特别是成为 热代码 之后,少量的字符串连接的差距就更显现不出来了。...goto 14 # for 循环结束 # 在 for 循环结束和开始当中,每遍历一次都会创建一个 StringBuilder 对象,与下面的代码相比这就是速度慢的地方...这也就解释了明明编译器自动帮助我们把 + 优化成 StringBuilder 了却还是 比 StringBuilder 慢的原因。

    37020

    OS X 自带的PHP 环境GD库没法用的解决方法

    毕竟OS X 的php鬼知道是怎么搞的。 所以,如果单独编译,可能会出点问题。那么,只能找其他方法了。 索性阿福招到了。...curl -s http://php-osx.liip.ch/install.sh | bash -s 5.5 这个命令跑一下就OK了。...如果你的OS X 是最新版的话,那么你应该看一下你的php版本,使用php -v来查看,然后把后面的数字替换掉。 另外提醒一下,这个URL需要挂代理才行,否则下载速度渣渣,可能会导致超时。。...毕竟curl也不是很智能的。 等他跑完,预计你就能够用上gd库了。也能生成验证码了。当然,你单独安装xampp就当我没说。...未经允许不得转载:RffanLAB|Rffan实验室 » OS X 自带的PHP 环境GD库没法用的解决方法

    44630

    php-fpm的pool、PHP慢执行日志、open_basedir、php-fpm进程管理

    12.21 php-fpm的pool 为了避免因多站点使用同一个pool时因一个站点故障导致pool出问题,进而影响使用同一个pool的其他站点的正常运行,要对每个站点配置一个单独的pool。...添加php-fpm.conf子配置文件 为了便于管理,可以将php-fpm中的每个pool单独进行管理。...12.22 php-fpm的慢执行日志 开启慢执行日志: [root@adailinux php-fpm.d]# vim /usr/local/php-fpm/etc/php-fpm.d/www.conf...> 检测: [root@adailinux php-fpm.d]# curl -x127.0.0.1:80 test.com/sleep.php test slow logdone 查看慢日志: [root.../test.com/sleep.php:3 12.23 php-fpm中指定open_basedir 当一台服务器跑多个站点时,使用open_basedir限定各个站点所能访问的服务器上的目录的范围。

    67220

    奥比中光上市,一次「快」与「慢」的进化

    如今,站在2022年回顾奥比中光的发展历程,如何从一家账上只够发几个月工资的初创企业到登陆A股资本市场的“3D视觉第一股”,掘金志发现几个非常有意思的点,比如快与慢。 1、何为快?...但企业光有“快”,是不行的,在某些方面,又必须“慢”下来,才能维持均衡。 2、何谓慢? 创业公司如同高速行驶的汽车,应该懂得适时调整速度。...在黄源浩看来,创业公司在进行扩张时,一定要“慢”下来。 首先,选择行业要慢下来,精挑细选,而非只追求风口,把时间周期拉长,看这个行业的长期价值。...可以说,正是因为“慢”下来,奥比中光在3D视觉感知领域才能做到全球前列,并且成功在科创板上市。...对于科技企业,困难不单来自于技术、场景、需求、市场规模、成本等,最难的是保持技术初心,和钻研技术解决问题的坚持。 奥比中光“快”与“慢”的逻辑,既符合一家科技公司的定义,也给其它公司提供了思路。

    29620

    php-fpm中启用慢日志配置(用于检测执行较慢的PHP脚本)

    虽然通过nginx accesslog可以记录用户访问某个接口或者网页所消耗的时间,但是不能清晰地追踪到具体哪个位置或者说函数慢,所以通过php-fpm慢日志,slowlog设置可以让我们很好的看见哪些...php进程速度太慢而导致的网站问题 php-fpm.conf的配置文件中有一个参数request_slowlog_timeout是这样描述的 ; The timeout for serving a single...慢日志文件位置默认在php的安装目录下的log文件夹中,可以通过修改slowlog = log/$pool.log.slow参数来指定。...慢日志的例子,慢日志会记录下进程号,脚本名称,具体哪个文件哪行代码的哪个函数执行时间过长。...和 slowlog需要同时设置,开启request_slowlog_timeout的同时需要开启 slowlog,慢日志路径需要手动创建 具体开启php-fpm慢日志步骤: cd /apps/php

    2.5K100

    php-fpm的pool,php-fpm慢执行日志,open_basedir,php-fpm进程管理

    检查语法和重启: php-fpm慢执行日志: php-fpm的慢执行日志是一个很有用的东西,如果需要做php的网站,建议使用lnmp架构,因为我们可以去分析php-fpm的慢执行日志,在运维的日常工作当中经常会遇到一个让人头疼的问题...,那就是你的老板或者你的客户经常会反馈网站的访问速度变慢了,所以我们得知道访问慢的根本原因,才能去解决这个访问慢的问题。...如果是php网站,就可以通过慢执行日志去分析原因,所以才说php-fpm的慢执行日志是一个很有用的东西。...reload #重启php-fpm服务 Reload service php-fpm done 然后查看一下是否有生成日志文件,这个时候日志文件是空的: 接下来我们来模拟一个慢执行的...> 使用curl对这个脚本进行访问: 访问完之后查看慢执行日志,这个日志告诉了我们以下信息: 现在我们打开sleep.php看一看: 所以这就是慢执行日志的作用,能够帮我们记录访问慢的原因。

    1.1K40

    比Mojo慢68000倍,Python性能差的锅该给GIL吗?

    Mojo 的最初设计目标是比 Python 快 35000 倍,近期该团队表示,因为结合了动态与静态语言的优点,Mojo 一举将性能提升到了 Python 的 68000 倍。...鹅厂工程师真实使用感受》 这不是第一个号称比 Python 更快的编程语言,相信也不会是最后一个。那么问题来了,为什么是个编程语言就比 Python 快呢?...那么,这个切换过程是如何发生的呢?事实上,GIL 的实现也随着 Python 的发展发生过明显的变化。...一件显而易见的事情是,针对多线程的架构在单线程下非常难以达到和针对单线程的架构同样的执行效率,因此这对于实现者来说本身就具有非常大的挑战。...Python GIL 并不像很多人想象的那样是一个愚蠢的决策,在当时的时代背景下,它很大程度促进了 Python 的发展和生态的繁荣。

    63540

    php使用register_tick_function来定位执行慢的代码

    同事在优化页面加载慢的问题中将数据分离为2个接口来分别异步加载,但是实际的情况是接口1一直在查询,接口2也一直在查询,接口2一定要等接口1查询完成才能返回结果。...正好我有空就想到通过register_tick_function来判断到底是卡在哪一行,一旦注册register_tick_function,php执行一行代码都会调用注册的处理函数,通过计算上一次代码执行时间和本次执行时间即可定位位置...php/** * Class Tracker */class Tracker{    /**     * 执行代码时间(单位毫秒)     * @var int     */    protected ...是保存在文件中的,存在session锁的问题,上面的简单粘贴下代码。...可能存在的问题,如果代码执行直接卡死进程关闭是无法定位到的,由于是windows,否则可以开启fpm慢日志即可快速定位。

    32120
    领券