分类 笔记 下的文章

nginx报错:terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc

安装crmeb后系统经常性提示 network error , 检查nginx_error.log发现错误:terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc,此错误到达一定程度后会自动停止服务。

经排查,由于服务器安装云锁导致,修改 /usr/local/yunsuo_agent/FilterKernel.xml

注释掉: <PlugIn dllpath="libs/libperformanceMonitor.so" RunOn_Filter=".*" RunOn_Product=".*"/>

重启Nginx,问题解决。

JS浏览器/操作系统属性检测 浏览器指纹

浏览器环境使用Js可以检测的属性不仅包含浏览器的信息,同时还有操作系统,计算机硬件等信息(虽然不多)。

Chrome一直在阻止网页技术捕获用户的指纹,这是出于对于用户隐私与安全性的考虑,所以现在可用的技术可能在未来的某个版本中就不可用了。但是浏览器指纹帮助我们了解到原来还可以这么玩?而且未来Chrome也有可能授权用户给JS赋能唯一ID的能力,当然目前来看Chrome还没打算这么做。

- 阅读剩余部分 -

数据脱敏方案

数据脱敏也叫数据的去隐私化,在我们给定脱敏规则和策略的情况下,对敏感数据比如 手机号、银行卡号 等信息,进行转换或者修改的一种技术手段,防止敏感数据直接在不可靠的环境下使用。

像政府、医疗行业、金融机构、移动运营商是比较早开始应用数据脱敏的,因为他们所掌握的都是用户最核心的私密数据,如果泄露后果是不可估量的。

数据脱敏的应用在生活中是比较常见的,比如我们在淘宝买东西订单详情中,商家账户信息会被用 * 遮挡,保障了商户隐私不泄露,这就是一种数据脱敏方式。

- 阅读剩余部分 -

Git提交规范

需制定统一标准,提交记录清晰明了,让团队一看就能知道此次提交的目的,减少时间成本。规范的git提交,方便接入版本日志自动化处理系统。

phpstorm安装 git commit message helper 插件步骤:

  1. file -> settings
  2. plugins 搜索安装
  3. 通过phpstorm提交时,点击图示图标填写记录。

- 阅读剩余部分 -

PHP 生成简短唯一ID开源库 Sqids

Sqids 是一个开源库,可以让您从数字中生成唯一的ID。它有利于缩短链接,快速生成URL安全的ID,并将其解码为数字,以更快地查找数据库。https://github.com/sqids/sqids-php

注:不适用于敏感数据。
生成的ID对于输入和字母表是唯一的。请记住,默认字母表包含大写和小写字母,因此默认ID是区分大小写的。

限制:

  • Sqids无法编码负数。
  • 最小字母表长度为3个字符。
  • 字母表不能包含任何多字节字符。
  • Sqids不能生成特定长度的ID,只能生成至少特定长度的ID。最小长度参数范围介于0和255之间。
  • Sqids可以尝试重新生成ID,直到字母表长度减一。
# 安装
composer require sqids/sqids

# 示例
$sqids = new Sqids(); #指定最小长度 new Sqids(minLength: 10) 自定义字母表:new Sqids(alphabet: 'FxnXM1kBN6cuhsAvjW3Co7l2RePyY8DwaU04Tzt9fHQrqSVKdpimLGIJOgb5ZE') 防止特定单词出现在自动生成的ID中的任何位置:new Sqids(blocklist: ['86Rf07'])
$id = $sqids->encode([1, 2, 3]); // "86Rf07"
$numbers = $sqids->decode($id); // [1, 2, 3]

高并发架构设计(三大利器:缓存、限流和降级)

软件系统有三个追求:高性能、高并发、高可用,俗称三高。本篇讨论高并发,从高并发是什么到高并发应对的策略、缓存、限流、降级等。

高并发背景

互联网行业迅速发展,用户量剧增,系统面临巨大的并发请求压力。

软件系统有三个追求:高性能、高并发、高可用,俗称三高。三者既有区别也有联系,门门道道很多,全面讨论需要三天三夜,本篇讨论高并发。

高并发对系统的挑战

性能下降、资源竞争和稳定性问题等。

- 阅读剩余部分 -