PHP APCu缓存使用与避坑
APCu 极简概括: PHP 的开源内存缓存扩展,类比Redis,但是一般都用Redis,所以APCu用的很少。 官方文档:https://www.php.net/manual/zh/apcu.configuration.php 解决问题:类比Redis做缓存组...
PHP CGI远程代码执行高危漏洞(CVE-2024-4577)复现与源码分析
五一假期,偶然间刷到了这个漏洞,我用shodan和钟馗之眼做了资产扫描,发现大量有使用XMAPP的用户,并且攻击成本并不高,危害却很大。 中国工程院院士邬贺铨曾说过:“网络安全永远在路上,那么...
高并发下数据幂等问题的9种解决方案
置顶说明 严格来说,所谓人云亦云的接口幂等性,大部分场景是要求接口防重或数据幂等,而不是接口幂等,很多人都搞混了。 举例:后端做了支付防重,用户对单一订单重复支付,再次支付不是提示支...
你写的防止任意文件上传漏洞的代码,不一定安全
说明:任意文件上传漏洞,很多PHP开发者也会做一些简单的防护,但是这个防护有被绕过的可能。 原生漏洞PHP示例代码: $file = $_FILES['file'] ?? []; //检测文件类型 $allow_mime = [&...
PHP-FPM与Nginx通信报 502 Bad Gateway或504 Gateway Timeout终极解决方案(适用于PHP执行耗时任务情况下的报错)
前置条件: 适用于常规请求都没问题,但是执行某些php脚本需要超过一分钟的情况下的502/504,并不是任何请求都502/504的情况(这说明php-fpm或者nginx配置错误)。 出现502/504的原因 502 执行...
深入理解PHP+Redis实现布隆过滤器(亿级大数据处理和黑客攻防必备)
布隆过滤器 极简概括 英文名称Bloom Filter,用于判断一个元素是否在一个大数据集合中,如果检测到存在则有可能存在,如果不存在则一定不存在。 Redis官网对于布隆过滤器的说明:https://redis....
基于Laravel封装一个强大的请求响应日志记录中间件
为何强大 记录全面: 包含请求路径、请求方法、客户端IP、设备标识、荷载数据、文件上传、请求头、业务逻辑处理时间、业务逻辑所耗内存、用户id、HTTP响应状态码、以及响应数据。 配置简单: 默...
PHP的多样化执行方式(parallel PHP多线程实现,原生协程实现,多进程实现,ZTS、NTS、TS又是什么)
进程、线程、协程 进程:应用程序的启动实例,运行起的代码叫进程,有独立的内存空间,类比工厂的P个(P=1单进程,P>1多进程)车间。 线程:线程是CPU调度的最小单位,是进程内的执行单元,...
4.3万字详解PHP+RabbitMQ(AMQP协议、通讯架构、6大模式、交换机队列消息持久化、死信队列、延时队列、消息丢失、重复消费、消息应答、消息应答、发布确认、故障转移、不公平分发、优先级、等)
理论(后半部分有实操详解) 哲学思考 易经思维:向各国人讲述一种动物叫乌龟,要学很久的各国语言,但是随手画一个乌龟,全世界的人都能看得懂。 道家思维:努力没有用(指劳神费心的机械性重...