选择的维度 (www.codedump.info)
工作这些年之后,我将一份工作中满意度的指标大体划分到三个维度里面:钱、事情和人。一份工作,如果有两个维度都能较好的满足自己标准的,就算是一份不错的工作了;反之,只有一个维度满意,这时毫不犹豫就应该换一份工作;三个维度都能很好的工作,可遇而不可求。
by @技术头条 2024-03-13 13:39 查看详情
实用密码学之数字证书与 TLS 协议 (thiscute.world)
现代人的日常生活中,HTTPS 协议几乎无处不在,我们每天浏览网页时、用手机刷京东淘宝时、甚至每天秀自己绿色的健康码时,都在使用 HTTPS 协议。

作为一个开发人员,我想你应该多多少少有了解一点 HTTPS 协议。 你可能知道 HTTPS 是一种加密传输协议,能保证数据传输的保密性。 如果你拥有部署 HTTPS 服务的经验,那你或许还懂如何申请权威 HTTPS 证书,并配置在 Nginx 等 Web 程序上。

但是你是否清楚 HTTPS 是由 HTTP + TLS 两种协议组合而成的呢? 更进一步你是否有抓包了解过 TLS 协议的完整流程?是否清楚它加解密的底层原理?是否清楚 Nginx 等 Web 服务器的 HTTPS 配置中一堆密码学参数的真正含义?是否知道 TLS 协议有哪些弱点、存在哪些攻击手段、如何防范?
by @技术头条 2024-03-13 13:35 查看详情
服务调用的演进历史 (www.codedump.info)
这个题目稍微有点大,纯粹是一篇科普文,将我所了解到的解决“服务调用”相关的技术演进历史简述一下,本文专注于演化过程中每一步的为什么(Why)和是什么(What)上面,尽量不在技术细节(How)上面做太多深入。
by @技术头条 2024-03-13 13:33 查看详情
IM服务器设计-消息存储 (www.codedump.info)
这部分专门讲述IM消息存储的设计。消息存储的难度在于,要考虑以下的场景:

1、离线消息存储。即发送消息时对方不在线该怎么处理。
2、单聊、群聊消息。
3、随着用户量越来越大,应该以后如何扩展。
by @技术头条 2024-03-13 13:33 查看详情
IM服务器设计-基础 (www.codedump.info)
IM做为非常经典的服务器系统,其设计时候的考量具备代表性,所以这一次花几个篇幅讨论其相关设计。

主要内容相当部分参考了 一套海量在线用户的移动端IM架构设计实践分享一文,在此之上补充了更好的消息存储设计以及集群设计。

by @技术头条 2024-03-13 13:32 查看详情
Redis高可用原理 (www.codedump.info)
Redis中为了实现高可用(High Availability,简称HA),采用了如下两个方式:
1、主从复制数据。
2、采用哨兵监控数据节点的运行情况,一旦主节点出现问题由从节点顶上继续进行服务。
by @技术头条 2024-03-13 13:29 查看详情
UTF-8 Overlong Encoding导致的安全问题 (www.leavesongs.com)
Overlong Encoding是将1个字节的字符,按照UTF-8编码方式强行编码成2位以上UTF-8字符的方法。

0xC0AE并不是一个合法的UTF-8字符,但我们按照UTF-8编码方式将其转换出来的,这就是UTF-8设计中的一个缺陷。

按照UTF-8的规范来说,我们应该使用字符可以对应的最小字节数来表示这个字符。那么对于点号来说,就应该是0x2e。但UTF-8编码转换的过程中,并没有限制往前补0,导致转换出了非法的UTF-8字符。

这种攻击方式就叫“Overlong Encoding”。
by @技术头条 2024-03-13 13:26 查看详情
重复视频检测的价值和常见方法 (ixyzero.com)
全网范围内的主要精品视频主要来自MCN机构,一些公司为了更快更好地去覆盖全网内容,会选择和内容代理合作,而代理手上会有很多重复版权的内容,导致重复内容出现。另外,搬运视频也会导致重复内容出现,这些重复内容会造成极差的用户体验。

再者,大量内容相似的视频对于短视频平台存储、网络带宽等资源也是一个极大的挑战,为了不必要的资源浪费,对视频内容进行去重是非常有必要的。
by @技术头条 2024-03-13 13:24 查看详情
Nginx proxy_pass到AWS ALB的504问题 (www.iots.vip)
我们的部分后端服务正在经历容器化的改造, 由于历史包袱,现网的网关等设施无法一次性迁移到 k8s 集群中, 因此使用 Nginx proxy_pass 转发到 AWS ALB 这样一个曲线救国的临时方案。

但是在使用时,我们发现一段时间后 Nginx 出现了 504 的错误,检查后端服务均是正常的,而单独访问 ALB 也是正常响应的,因此便有了此文。
by @技术头条 2024-03-13 13:22 查看详情
Nginx proxy_pass到AWS ALB的504问题 (www.iots.vip)
我们的部分后端服务正在经历容器化的改造, 由于历史包袱,现网的网关等设施无法一次性迁移到 k8s 集群中, 因此使用 Nginx proxy_pass 转发到 AWS ALB 这样一个曲线救国的临时方案。

但是在使用时,我们发现一段时间后 Nginx 出现了 504 的错误,检查后端服务均是正常的,而单独访问 ALB 也是正常响应的,因此便有了此文。
by @技术头条 2024-03-13 13:22 查看详情
NextJS/React 加载远程组件 (innei.in)
写过文档的大佬们都知道 MDX 这个东西,对原本的 Markdown 进行了扩展,可以在 Markdown 中直接使用框架组件(React,Vue 等等)。
现在也有很多静态生成的博客使用 MDX 去编写博文,在博文中内嵌了 React 组件,在一些需要交互式的场景中,在传统的 Markdown 只能展示内容,而使用了组件就可以把死的文字变活。
MDX 的原理是在项目构建时,解析 Markdown 抽象语法树,把引入的组件进行了编译,然后嵌入到了文章内部。
而使用 MDX,就必须要引入编译时。而对于 CMS 类型的博客网站,因为内容都是动态生成的,就无法使用 MDX。
那么有没有办法去想一个歪路子去实现呢。
by @技术头条 2024-03-13 13:21 查看详情
记一次无法弹出移动硬盘的记录 (lisenhui.cn)
或许在当下云计算时代,已经很少有人会用到移动硬盘或U盘的经验,亦或者大多数人都没有弹出移动设备后再拨出的习惯。笔者因早年在使用U盘时经历过直接拨出U盘导致其报废的“惨痛”教训,因此对移出设备的操作是铭记于心,万不敢直接拨插移动设备。但就是这个只需点击一次移出设备的操作,很多时候就会让我们有些烦恼,因为它有时候总喜欢和你对着干。这不今天就遇上一件无法解释的诡异现象:移动硬盘无法弹出,尝试过之前的各种妙招后仍是无济于事,最后也只是能祭出万能的关机大法才算是得以解脱。
by @技术头条 2024-03-13 13:20 查看详情
以非阻塞方式执行一个函数 (blog.codingnow.com)
用过 skynet 的应该都碰到过:当我们在服务中不小心调用了一个长时间运行而不返回的 C 函数,会独占一个工作线程。同时,这个被阻塞的服务也无法处理新的消息。一旦这种情况发生,看似是无解的。我们通常认为,是设计问题导致了这种情况发生。skynet 的框架在监测到这种情况发生时,会输出 maybe in an endless loop 。

如果是 Lua 函数产生的死循环,可以通过发送 signal 打断正在运行运行的 Lua 虚拟机,但如果是陷入 C 函数中,只能事后追查 bug 了。

那么,如果我原本就预期一段 C 代码会运行很长时间,有没有可能从底层支持以非阻塞方式运行这段代码呢?即,在这段代码运行期间,该服务还可以接收并处理新的消息?
by @技术头条 2024-03-13 13:20 查看详情
基于 LLaMA 和 LangChain 实践本地 AI 知识库 (blog.yuanpei.me)
通用人工智能,即:AGI(Artificial General Intelligence)的实现,正在以肉眼可见的速度被缩短,以前在科幻电影中看到的种种场景,或许会比我们想象中来得更快一些。不过,等待 AGI 来临前的黑夜注定是漫长而孤寂的。在此期间,我们继续来探索 AI 应用落地的最佳实践,即:在成功部署本地 AI 大模型后,如何通过外挂知识库的方式为其 “注入” 新的知识。
by @技术头条 2024-03-13 13:12 查看详情
竞业协议的相关文章收集 (ixyzero.com)
在国内互联网行业,竞业协议已经有点被滥用了——因为依据《劳动合同法》只有高级管理人员、高级技术人员和其他负有保密义务的人员才可被列于竞业限制的对象;但是现在,全员竞业,入职时就要求签署,不签没法入职。

为了给自己一点保障,多学习一点知识,所以简单整理一下竞业协议的简单内容,方便查阅和参考。
by @技术头条 2024-03-12 22:58 查看详情
防止数据泄露的高效策略-翻译整理 (ixyzero.com)
简单来说,就是数据安全左移,在每一个阶段都做卡点和检测,提高入侵/获取敏感数据的成本,减少后续阶段的日志告警量,提高告警检测准确率,利用自动化工具/平台提高响应的速度和效率。
未授权不可访问;有账号凭证要检测是否正常(常用设备、常用网络、常见时间、常见操作行为、……);有账号也仅知其所需最小权限;梳理出的高权限账号的敏感操作进行重点关注。
数据尽量不落地,大部分操作在线即可完成,系统埋点要全面和准确;对于数据下载和外发格外关注,下载设备的DLP的健康状态和策略的有效性需要及时检查。
by @技术头条 2024-03-12 22:56 查看详情
带你认识本地大模型框架Ollama(可直接上手) (wiki.eryajf.net)
自 OpenAI 公司于2022 年 11 月 30 日发布 ChatGPT 以来,经过 23 年一整年的发展之后,大模型的概念已逐渐普及,各种基于大模型的周边产品,以及集成层出不穷,可以说已经玩出花来了。在这个过程中,也有不少本地化的模型应用方案冒了出来,针对一些企业知识库问答的场景中,模型本地化是第一优先考虑的问题,因此如何在本地把模型调教的更加智能,就是一个非常重要的技能了。在 23 年的时候,我也接触过一些本地模型的开源项目(比如 LocalAI),当时在本地部署跑起来之后,发现交互的体验,回答的速度,以及智能程度,都远低于预期。最近又一次了解本地模型的玩法,从微信群里了解到了 ollama,经过几天业余时间的研究及了解,发现现在模型本地化的玩法,以及能力都早已不可同日而语,本文,将记录我这几天来对于 ollama 的粗浅认识以及快速入门玩起来。
by @技术头条 2024-03-12 22:53 查看详情
网络空间指纹:新型网络犯罪研判的关键路径 (paper.seebug.org)
网络空间指纹是对涉案网络资产所表现的数字痕迹和服务特征的收集和分析,类似于传统刑事科学的指纹概念,每个网络犯罪活动站点都会在网络空间留下独特的特征。本文将重点介绍网络空间指纹的形成和采集方法,以及其在网络犯罪研判中的应用实践。同时,我们将通过实际案例分析,验证网络空间指纹在研判网络犯罪行为中的可行性和有效性。
by @技术头条 2024-03-12 22:52 查看详情
通过漫游交换进行隐蔽访问的新型后门 GTPDOOR 分析 (paper.seebug.org)
GTPDOOR 是一种基于 Linux 的恶意软件,旨在部署在邻近 GRX(GPRS 交换网络)的电信网络系统中,具有通过GTP-C(GPRS 隧道协议- 控制平面)信令消息传递 C2 流量的功能。这使得 C2 流量能够与正常流量混合,并重新利用可能对 GRX 网络开放且暴露的已允许端口。
by @技术头条 2024-03-12 22:49 查看详情
slog 终极指南 (colobu.com)
在本文中,我们将探讨 Go 中的结构化日志记录,并特别关注这最近推出的 log/slog 软件包, 这个软件包旨在为 Go 带来高性能、结构化和分级的日志记录标准库。

该软件包起源于由 Jonathan Amsterdam 发起的 GitHub 讨论, 后来专门建立了一个提案细化设计。一旦定稿,它在Go v1.21版本中发布。

在以下各节中,我将全面呈现slog的功能, 提供相应的例子。至于它和其它日志框架的性能比较,请参阅此 GitHub 日志框架 benchmark.
by @技术头条 2024-03-12 22:48 查看详情