Skip to content


Nginx CVE‑2026‑42945高危漏洞:潜伏 18 年,威胁全球约 1/3 服务器(代号:NGINX Rift 附解决方案))

Nginx rewrite 模块漏洞 (CVE-2026-42945) 修复指南

  1. 漏洞概述 CVE-2026-42945(代号 NGINX Rift)是 nginx ngx_http_rewrite_module 模块中的一个堆缓冲区溢出漏洞,已存在约18年(自2008年起),影响 nginx 0.6.27 至 1.30.0 版本。
    Gemini_Generated_Image_zhm4t3zhm4t3zhm4
    项目 内容 漏洞编号 CVE-2026-42945 漏洞类型 堆缓冲区溢出 (Heap Buffer Overflow) CVSS v3.1 8.1 (高风险) CVSS v4.0 9.2 (严重) 影响范围 nginx 开源版 0.6.27 ~ 1.30.0,nginx Plus R32 ~ R36 修复版本 开源版 1.30.1+ / 1.31.0+,Plus R32 P6 / R36 P4+

潜在影响 服务中断:攻击者可使 nginx worker 进程崩溃,导致服务重启或拒绝服务

远程代码执行:在关闭 ASLR 的系统中,攻击者可能执行任意代码

  1. 漏洞触发条件 此漏洞不是任何 nginx 安装都会触发,而是依赖特定的配置模式。必须同时满足以下三个条件
# ❌ 漏洞配置:同时满足三个条件
location / {
    rewrite ^/(.*)$ /index.php?path=$1 last;   # 未命名捕获 + 问号
    set $var $uri;                              # 后跟 set 指令
}

# ✅ 安全配置:使用命名捕获
location / {
    rewrite ^/(?
<path>.*)$ /index.php?path=$path last;
    set $var $uri;
}
  1. 漏洞检测 3.1 检查 nginx 版本
    nginx -v 2>&1
    # 如果版本在 0.6.27 ~ 1.30.0 之间,则版本存在漏洞隐患

手动检查配置文件

# 检查所有 rewrite 规则
grep -RnE 'rewrite.*\$[0-9].*\?' /etc/nginx/

# 检查 rewrite 后是否紧跟 set/if/rewrite
grep -A1 -E 'rewrite.*\$[0-9].*\?' /etc/nginx/ | grep -E '(rewrite|set|if)'

使用自动化扫描工具 nginx-lint(官方推荐) CVE-2026-42945-scanner(开源工具) https://git.sr.ht/~hrbrmstr/cve-2026-42945-scanner

修复方案 方案一:升级 nginx(首选) nginx 官方 1.30.1+ 或 1.31.0+ 从 [nginx.org] 下载

方案二:临时缓解(无法立即升级时) 将未命名捕获改为命名捕获,这是官方认可的临时修复方案

原写法(漏洞风险)  ([a-zA-Z]+)  改成 (?
<name>[a-zA-Z]+)
?
<name> 就是(命名捕获)

实际修复示例 示例1:PHP 前端控制器

# 修复前(漏洞)
location / {
    rewrite ^/(.*)$ /index.php?route=$1 last;
    set $page $uri;
}

#修复后(安全)
location / {
    rewrite ^/(?
<route>.*)$ /index.php?route=$route last;
    set $page $uri;
}

#修复前
rewrite ^/user/([0-9]+)/profile/(.*)$ /profile.php?id=$1&tab=$2 last;

# 修复后
rewrite ^/user/(?
<id>[0-9]+)/profile/(?<tab>.*)$ /profile.php?id=$id&tab=$tab last;

# 修复前
location ~ ^/category-([a-zA-Z]+)-([0-9]+)\.html {
    set $cat_name $1;
    set $page $2;
    try_files /category/${cat_name}/list_${page}.html /app/list.php?cat=$1&page=$2;
}

# 修复后
location ~ ^/category-(?
<cat_name>[a-zA-Z]+)-(?<page>[0-9]+)\.html {
    set $cat_name $cat_name;
    set $page $page;
    try_files /category/${cat_name}/list_${page}.html /app/list.php?cat=${cat_name}&page=${page};
}   

方案三:移除问号(特定场景适用) 如果 rewrite 目标不需要传递参数,可移除

# 修复前
rewrite ^/oldpath/(.*)$ /newpath/$1? last;

# 修复后(移除 ?)
rewrite ^/oldpath/(.*)$ /newpath/$1 last;
参考
https://nginx.org/en/security_advisories.html
https://depthfirst.com/research/nginx-rift-achieving-nginx-rce-via-an-18-year-old-vulnerability

Posted in Nginx, 安全通告.

Tagged with , .


【漏洞通告】Linux内核曝高危本地提权漏洞,致容器逃逸与提权(CVE-2026-31431)(代号“Copy Fail”)

Linux Kernel 本地权限提升漏洞(CVE-2026-31431 / Copy Fail)风险通告

一、漏洞概述

CVE-2026-31431,代号 “Copy Fail”,是一个潜伏在 Linux 内核中近十年的本地权限提升漏洞。该漏洞存在于 Linux 内核加密子系统的 algif_aead 模块中,由 AF_ALG 加密接口、splice() 系统调用以及 2017 年引入的一项代码优化共同导致。

本地低权限攻击者利用该漏洞,可通过一个仅 732 字节的 Python 脚本,向任意可读文件的页缓存中写入受控的 4 字节数据,进而篡改 setuid 程序(如 /usr/bin/su)获得 root 权限。该漏洞利用无需竞争条件,成功率极高[citation:5][citation:7]。

由于 Linux 页缓存在容器边界间共享,该漏洞同样可被用于容器逃逸,对 Kubernetes 等云原生环境构成严重威胁。已监测到在野利用情况[citation:6]。

  • CVE 编号:CVE-2026-31431
  • 漏洞类型:资源跨安全域转移不当(CWE-669)[citation:1]
  • 公开状态:漏洞细节及 PoC 已公开
  • CVSS 评分:7.8(高危)[citation:8]

二、影响范围

2.1 受影响版本

该漏洞影响 2017 年引入优化提交(commit 72548b093ee3)后,至修复提交(commit a664bf3d603d)前的所有 Linux 内核版本[citation:6]。

  • 受影响内核范围commit 72548b093ee3 ≤ version < commit a664bf3d603d
  • 具体版本:内核版本 4.14 至 6.18.22 之前,以及 6.19.12 之前的 6.19 系列[citation:3]

2.2 受影响发行版

默认启用或可加载 algif_aead 模块的 Linux 系统均受影响,包括但不限于[citation:6]:

发行版家族 受影响版本
Ubuntu 24.04 LTS、22.04 LTS、20.04 LTS、18.04 LTS 及以下
Red Hat RHEL 10、9、8 及以下
Amazon Linux 2023 及以下
SUSE SUSE 16 及以下
其他 Debian、Arch、Fedora、Rocky、Alma、Oracle Linux 等同期内核版本

2.3 安全版本

更新至以下版本可彻底修复漏洞[citation:3][citation:6]:

  • 内核主线 7.0+
  • 稳定版 6.18.22+
  • 稳定版 6.19.12+

2.4 高风险场景

以下场景应立即排查并优先修复[citation:6]:

  • Kubernetes / 容器平台:容器内低权限代码可能逃逸至宿主机获得 root 权限
  • 多用户 Linux 主机:任意普通用户可提权至 root
  • 自托管 CI Runner(GitHub Actions、GitLab Runner、Jenkins):恶意 PR 或构建脚本可接管 Runner 节点
  • 云端 Notebook / 代码沙箱:租户代码可突破隔离边界
  • 堡垒机 / 跳板机:普通账号失陷后可扩大为系统完全控制

三、排查方法

3.1 检查内核版本

bash uname -r

若内核版本介于 4.14 至 6.18.22(不含)、或介于 6.19.0 至 6.19.12(不含),则受影响。

3.2 检查内核模块配置

bash grep CONFIG_CRYPTO_USER_API_AEAD /boot/config-$(uname -r) =y:静态编译进内核,受影响,只能通过升级内核修复

=m:模块方式,若已加载则受影响,可通过禁用模块缓解

=n:不受影响

3.3 检查模块是否已加载

bash lsmod | grep algif 若有输出,说明受影响模块已加载。

3.4 验证模块是否为内置(RHEL系重点检查)

bash modinfo algif_aead | grep filename

若输出 (builtin),则模块为内置,modprobe方案无效

四、修复方案

4.1 首选方案:更新内核(彻底修复)

升级 Linux 内核至包含修复提交 a664bf3d603d 的安全版本。升级后必须重启系统才能生效。

发行版 操作命令 Debian / Ubuntu sudo apt update && sudo apt full-upgrade && sudo reboot RHEL / Rocky / Alma / Fedora sudo dnf update kernel && sudo reboot Amazon Linux 2023 sudo dnf update kernel && sudo reboot SUSE / openSUSE sudo zypper refresh && sudo zypper patch && sudo reboot

4.2 临时缓解方案(无法立即升级时)

⚠️ 重要警告:以下缓解措施在 algif_aead 模块静态编译进内核的系统中无效(如 RHEL/CentOS/Rocky/AlmaLinux 8/9/10)。此类系统必须使用 4.2.2 节的特殊方案。

4.2.1 模块化内核(Ubuntu/Debian等)

步骤一:禁用并卸载模块

bash echo “install algif_aead /bin/false” | sudo tee /etc/modprobe.d/disable-algif-aead.conf sudo rmmod algif_aead 2>/dev/null || true 步骤二:验证缓解是否生效

bash lsmod | grep algif_aead # 应无任何输出

4.2.2 RHEL系列特殊方案(内置模块)

对于 RHEL/CentOS/Rocky/AlmaLinux 8/9/10,algif_aead 模块内置在内核中,必须使用 grubby 添加内核启动参数黑名单:

# 添加内核启动参数黑名单
sudo grubby --update-kernel=ALL --args="initcall_blacklist=algif_aead_init"
sudo reboot

# 确认生效 - 输出应包含 initcall_blacklist=algif_aead_init
sudo grubby --info=ALL | grep initcall_blacklist

恢复方法(安装补丁内核后):

bash sudo grubby –update-kernel=ALL –remove-args=”initcall_blacklist=algif_aead_init” sudo reboot

4.3 容器环境加固

对于 Kubernetes、容器平台、CI Runner 等运行不可信代码的环境,可通过 seccomp 阻断容器内 AF_ALG socket 创建(family=38):

{
  "syscalls": [{
    "names": ["socket"],
    "action": "SCMP_ACT_ERRNO",
    "args": [{"index": 0, "value": 38, "op": "SCMP_CMP_EQ"}]
  }]
}

4.4 缓解措施兼容性说明

禁用 algif_aead 不会影响以下正常功能:

dm-crypt / LUKS 磁盘加密

kTLS、IPsec、SSH

OpenSSL / GnuTLS 默认构建

内核密钥环加密

仅影响显式使用 AF_ALG 引擎的应用程序(如 OpenSSL 的 afalg 引擎,实际使用极少)。

五、参考链接

来源 链接 官方修复补丁 https://git.kernel.org/stable/c/a664bf3d603d CNCERT 安全公告 https://www.secrss.com/articles/89891 Ubuntu 安全公告 https://ubuntu.com/security/CVE-2026-31431 Red Hat CVE 详情 https://access.redhat.com/security/cve/cve-2026-31431 Debian 安全追踪 https://security-tracker.debian.org/tracker/CVE-2026-31431 SUSE 安全公告 https://www.suse.com/security/cve/CVE-2026-31431.html CloudLinux 缓解指南 https://blog.cloudlinux.com/cve-2026-31431-copy-fail-mitigation-and-patches 加拿大网络安全中心 https://www.cyber.gc.ca/en/alerts-advisories/al26-009-vulnerability-affecting-linux-cve-2026-31431

六、时间线

时间 事件 2017年7月 漏洞引入(commit 72548b093ee3) 2026年4月23日 漏洞发现并报告 2026年4月30日 修复补丁合并(commit a664bf3d603d),CVE公开,PoC发布 2026年4月30日 监测到在野利用 2026年5月1日 各发行版开始发布补丁 总结建议:CVE-2026-31431(Copy Fail)是近年来风险极高的本地提权漏洞,利用门槛低、成功率高,且已出现在野利用。多租户主机、容器节点、CI 平台应立即修复,无法立即修复的系统应优先采取临时缓解措施。特别注意:RHEL系列发行版需使用 grubby 方案而非 modprobe。请关注各发行版官方安全公告,及时更新内核。

Posted in 安全通告.

Tagged with .


牛牛查求职助手上架Chrome 官方应用商店

牛牛查求职助手 Chrome扩展

一个帮助求职者识别公司类型和获取更多信息的Chrome浏览器扩展。

🌟 功能特性

  • 🏷️ 智能公司标签: 自动识别并标记诈骗、外包、培训等类型的公司
  • 🔍 一键查询: 快速查询公司信息(天眼查、企查查、爱企查等)
  • 📊 API数据拦截: 自动获取招聘网站的职位数据进行分析
  • ⚙️ 个性化设置: 支持自定义公司名单和功能开关
  • 🎯 多网站支持: 支持51job、BOSS直聘、牛企直聘网等主流招聘网站
  • 📅 职位时效性: 显示职位发布时间,帮助判断职位新鲜度

🚀 安装方法

方法:Chrome 应用商店安装(推荐)

可以在Chrome 应用商店安装 搜索’牛牛查求职助手’ 或者直接访问项目地址 牛牛查求职助手

  • boss1_640
  • boss2_640
  • yingjiesheng1_640
  • niuqi1_640
  • pic_440

Posted in 浏览器插件.

Tagged with .


Trae 解锁2025代码战绩

可以在编辑器上方解锁战绩报告。 也就日常使用,怎么就超99%用户了。。。

  • scrnli_9a8ogcohIG3QTj
  • scrnli_y7fe9p0Bkg324Z
  • trae-annual-2025_proc

Posted in AI.

Tagged with .


安全公告 — CVE-2025-12914 BT宝塔面板

https://nvd.nist.gov/vuln/detail/CVE-2025-12914

NVD 已公開 aaPanel(BT宝塔面板)CVE-2025-12914 安全漏洞。此漏洞存在於/database?action=GetDatabaseAccess,可被遠端利用進行 SQL 注入攻擊,風險極高。

CVE-2025-12914 漏洞修复说明 一、漏洞概述

外部安全平台披露了与宝塔面板相关的CVE-2025-12914漏洞信息。 该漏洞出现在旧版本的数据库权限查询逻辑中,由于对输入参数校验不足,可能在特定条件下触发 SQL 注入风险。

该漏洞无法被未授权远程用户直接利用,需要满足较高的权限条件后才可能触发。 二、影响范围

面板版本

状态

≤ 11.2.x

受影响

11.3.0 起已修复,不受影响三、漏洞利用条件与风险说明

漏洞仅在攻击者已具备以下权限时可能被利用:

已登录宝塔面板后台(任意管理员账号) 或已获取宝塔面板 API AccessKey(等同后台权限) 在未授权访问的情况下,该漏洞无法触发,因此实际风险有限。

四、修复情况

该问题已在11.3.0中完成修复,包括:

将字符串拼接的 SQL 查询改为参数化查询

增强输入校验与异常处理

完整阻断该类型注入风险

五、修复内容说明(技术细节) 原始代码存在字符串拼接,例如:

users = mysql_obj.query(“select Host from mysql.user where User='”+ name +”‘ AND Host!=’localhost'”)

更新后,已改为参数化写法:

sql =”select Host from mysql.user where User=%s AND Host!=’localhost'”users = mysql_obj.query(sql, param=(name,))

此方式能确保用户输入不会被解释为 SQL 指令,从根源上避免注入。

六、致谢

感谢向我们提交漏洞信息的安全研究人员,对宝塔面板安全改进提供了宝贵帮助。

七、处理建议

建议所有用户升级至11.3.0 或更新版本。 如暂时无法升级,可采取:

限制面板访问来源 IP

启用双因素认证

检查面板 API 与 MySQL 日志

Posted in 安全通告.

Tagged with .


18日Google 推出 AI 编程工具:Antigravity,免费使用 Gemini 3 Pro, Claude Sonnet 4.5, GPT-OSS

Google Antigravity 是谷歌推出的一款全新的 AI 原生集成开发环境(IDE),其设计核心是“代理优先”,旨在让AI智能体承担更多开发工作,这是一款类似 Cursor、WindSuf 这样的 VS Code 换皮 AI 编程工具。

个人目前免费使用,需使用google账号登录,团队/企业计划还没出。 https://antigravity.google/pricing Public preview Individual plan $0/month Get started with your Google account.

Download checkAgent model: access to Gemini 3 Pro, Claude Sonnet 4.5, GPT-OSS checkUnlimited Tab completions checkUnlimited Command requests checkGenerous rate limits *

下载地址: https://antigravity.google/download windows版152m,支持 Windows、MacOS、Linux 多操作系统

注意:浏览器oauth登录回调时需要全局 、TUN模式、美国节点。

核心定位 面向“代理主导型”开发的AI原生IDE 核心功能 – 多智能体并行:可同时运行多个AI智能体,异步处理不同任务。

  • 可验证的工作流:通过生成任务清单、屏幕录像、浏览器截图等“Artifacts”来验证代码质量。
  • 直观的反馈机制:支持在截图、代码等成果上直接标注评论,实现无缝协作。
  • 浏览器控制:内置Chrome浏览器,AI可自动运行和测试代码。 可用性与生态 – 免费使用:目前已开启公共预览,可免费下载使用。
  • 多系统支持:支持 Windows、macOS 和 Linux。
  • 多模型支持:深度集成Gemini 3,同时支持 Claude Sonnet 和 OpenAI 等模型。

如何开始使用 如果你有兴趣尝试 Google Antigravity,可以参照以下步骤:

下载与安装 访问 Google Antigravity 的官方网站(antigravity.google),根据你的操作系统(Windows、macOS 或 Linux)下载对应的版本并进行安装。

启动与设置 安装完成后,使用你的谷歌账户登录。首次使用时,可以根据你的偏好配置初始设置,例如选择默认的AI模型。

探索界面与模式 Antigravity 主要提供两种工作视图:

编辑器视图:提供类似传统IDE的熟悉体验,适合同步与AI协同编码。

管理器视图:像一个“任务控制中心”,可以并行启动、协调和观察多个AI智能体 across 不同的工作区。

开始第一个项目 建议从一个小型项目开始,例如“构建一个航班查询 Web App”或创建一个简单的待办事项应用。你只需要向AI智能体给出高层次的任务描述,它便会自动制定计划并开始执行

Posted in AI.

Tagged with , , .


牛牛查求职助手chrome插件发布

牛牛查求职助手 Chrome扩展

一个帮助求职者识别公司类型和获取更多信息的Chrome浏览器扩展。

🌟 功能特性

  • 🏷️ 智能公司标签: 自动识别并标记诈骗、外包、培训等类型的公司
  • 🔍 一键查询: 快速查询公司信息(天眼查、企查查、爱企查等)
  • 📊 API数据拦截: 自动获取招聘网站的职位数据进行分析
  • ⚙️ 个性化设置: 支持自定义公司名单和功能开关
  • 🎯 多网站支持: 支持51job、BOSS直聘、牛企直聘网等主流招聘网站
  • 📅 职位时效性: 显示职位发布时间,帮助判断职位新鲜度

🌐 支持的网站

网站 域名 功能支持
前程无忧 we.51job.com ✅ 公司标签 + API拦截
BOSS直聘 www.zhipin.com ✅ 公司标签 + API拦截
牛企直聘网校招 campus.niuqizp.com ✅ 公司标签 + 链接解码

📋 公司类型标识

  • ⚠️ 诈骗公司: 红色标签,提醒用户注意安全
  • 🔄 外包公司: 橙色标签,提醒用户了解工作性质
  • 📚 培训公司: 蓝色标签,提醒用户注意是否为培训岗位
  • 🚨 自定义标签: 紫色标签,用户自定义的警告公司

🚀 快速开始

详细安装步骤请查看 INSTALL.md

📁 项目结构

chrome-extension/
├── manifest.json          # 扩展清单文件
├── background.js          # 后台服务脚本
├── content.js            # 内容脚本(主要功能)
├── inject.js             # API拦截脚本
├── config.js             # 统一配置文件
├── popup.html            # 扩展弹出界面
├── options.html          # 设置页面
├── styles.css            # 样式文件
└── icons/                # 扩展图标
└── lib/                  # 扩展依赖库

⚙️ 主要功能

1. 公司标签系统

  • 基于内置公司数据库自动标记
  • 支持模糊匹配公司名称
  • 显示匹配的关键词和详细信息

2. 快速查询功能

  • 一键跳转到天眼查、企查查等平台
  • 鼠标悬停显示查询选项菜单
  • 支持多个查询平台同时使用

3. API数据拦截

  • 自动拦截招聘网站的API请求
  • 获取更详细的职位信息
  • 提供更准确的数据分析

4. 个性化设置

  • 自定义公司黑名单
  • 功能开关控制
  • 调试模式支持

🔧 技术特性

  • Manifest V3: 使用最新的Chrome扩展标准
  • 模块化设计: 清晰的代码结构和配置分离
  • 性能优化: 智能的元素处理和内存管理
  • 错误处理: 完善的异常捕获和日志系统
  • 兼容性: 支持多个主流招聘网站

📝 使用说明

  1. 安装扩展: 按照INSTALL.md的步骤安装
  2. 访问招聘网站: 打开支持的招聘网站
  3. 查看标签: 自动显示的公司类型标签
  4. 快速查询: 点击”🔍 牛牛查公司”按钮
  5. 个性化设置: 点击扩展图标进行设置

🛠️ 开发与调试

调试模式

  1. 点击扩展图标打开设置
  2. 开启”调试模式”
  3. 打开浏览器开发者工具查看日志

测试功能

  • 在控制台运行 niuniuTestSettings() 查看当前设置
  • 运行 niuniuTestApiInterception() 测试API拦截

⚠️ 注意事项

  • 本扩展仅供参考,具体公司情况请自行核实
  • 公司标签基于公开信息整理,可能存在误判
  • 建议结合多种渠道了解公司真实情况
  • 请遵守各招聘网站的使用条款

🚀 安装方法

方法:Chrome 应用商店安装(推荐)

可以在Chrome 应用商店安装 搜索’牛牛查求职助手’ 或者直接访问项目地址 牛牛查求职助手

方法:开发者模式安装

  1. 下载扩展文件

  2. 打开Chrome扩展管理页面

    • 在Chrome地址栏输入:chrome://extensions/
    • 或者:菜单 → 更多工具 → 扩展程序
  3. 启用开发者模式

    • 在扩展管理页面右上角,开启”开发者模式”开关
  4. 加载扩展

    • 点击”加载已解压的扩展程序”按钮
    • 选择包含扩展文件的文件夹
    • 点击”选择文件夹”
  5. 验证安装

    • 扩展应该出现在扩展列表中
    • 浏览器工具栏会显示扩展图标

🔄 更新日志

v1.2.0 (当前版本)

  • ✅ 修复Boss API拦截问题
  • ✅ 优化错误处理机制
  • ✅ 清理调试和测试文件
  • ✅ 完善文档和安装指南

v1.1.0

  • 添加牛企直聘网支持
  • 优化API拦截机制
  • 增加自定义公司名单功能

v1.0.0

  • 初始版本发布
  • 支持51job和BOSS直聘
  • 基础公司标签功能

📄 许可证

本项目采用 MIT 许可证 – 查看 LICENSE 文件了解详情。

🤝 贡献

欢迎提交Issue和Pull Request来帮助改进这个项目!


免责声明: 本工具仅供求职参考,不构成任何投资或就业建议。用户应当独立判断和决策。

Posted in 浏览器插件.

Tagged with .


牛牛查求职助手发布1.3

feat:增加应届生求职网支持 feat:支持列表显示职位时间,详情页支持未登录时去除登录窗,去除职位详情的遮罩 fix:牛企直聘详情页,修正显示a链接的原标题

https://github.com/andychu46/niuniuchajobhunting/releases/tag/v1.3

Posted in 浏览器插件.

Tagged with .


篡改猴脚本,可以显示招聘网站职位首次发布时间的信息增强工具

🏷️ 牛牛查求职助手 牛牛查favicon

Version License Platform Support

智能招聘信息增强工具 – 让求职更安全、更高效

牛牛查favicon

📝 项目简介

牛牛查求职助手是一款专为求职者设计的浏览器油猴脚本,旨在为招聘网站提供强大的信息增强功能。通过智能识别和数据补充,帮助求职者更好地了解公司信息,识别潜在风险,提高求职成功率。

✨ 核心功能

🏷️ 公司标签系统

  • ⚠️ 诈骗公司识别 – 红色警告标签,自动识别已知诈骗公司
  • 🔄 外包公司标记 – 橙色提醒标签,帮助了解工作性质
  • 📚 培训机构识别 – 蓝色信息标签,识别培训转岗机构
  • 🚨 自定义标签 – 紫色标记,支持个性化公司标记

🔍 公司信息查询

  • 一键查询 – 快速跳转至天眼查、爱企查、企查查等平台
  • 多平台支持 – 集成百度搜索、工商信息查询等多个渠道
  • 便捷操作 – 鼠标悬停显示查询选项,点击直接跳转

📅 职位时间追踪

  • 首发时间显示 – 显示职位最初发布时间
  • 更新时间追踪 – 跟踪职位信息更新记录
  • 颜色编码 – 用不同颜色标识职位新鲜度
    • 🟢 7天内:新鲜职位
    • 🔵 14天内:较新职位
    • 🟡 2个月内:一般职位
    • 🔴 3个月内:较旧职位
    • ⚫ 3个月以上:过期职位

💼 职位详情增强

  • 学历要求显示 – 自动提取并显示学历要求
  • 工作经验标注 – 清晰展示经验要求
  • 职位描述预览 – 快速浏览职位详细信息

🔗 链接智能解码

  • 加密链接解码 – 自动解码Base64等加密链接
  • 真实地址显示 – 显示链接的真实目标地址
  • 安全访问 – 新窗口打开,保护主页面安全

🌍 支持平台

平台 支持状态 功能完整度
前程无忧 (51job.com) ✅ 完全支持 🌟🌟🌟🌟🌟
BOSS直聘 (zhipin.com) ✅ 完全支持 🌟🌟🌟🌟🌟
牛企直聘 (niuqizp.com) ✅ 完全支持 🌟🌟🌟🌟⭐

🚀 快速开始

安装步骤

  1. 安装篡改猴 (Tampermonkey) 篡改猴 (Tampermonkey) 是拥有 超过 1000 万用户 的最流行的浏览器扩展之一。 它适用于 Chrome、Microsoft Edge、Safari、Opera Next 和 Firefox。 有些人也会把篡改猴(Tampermonkey)称作油猴(Greasemonkey),尽管后者只是一款仅适用于 Firefox 浏览器的浏览器扩展程序。 以下站点可能需要施魔法

Chrome 上的 Tampermonkey
Chrome 上的 Tampermonkey

要使用用户脚本,您首先需要安装一个用户脚本管理器。您可以根据您自己当前使用的浏览器来选择一个用户脚本管理器。

桌面端

移动端(Android)

移动端(iOS)

  1. 安装脚本

    方式一:直接安装(推荐)

    点击:安装脚本

    方式二:手动安装

    1. 打开项目地址,复制文件内容 tampermonkey/牛牛查求职助手-招聘网站信息增强工具.user.js
    2. 在Tampermonkey中创建新脚本
    3. 粘贴代码并保存

    方式三:脚本站安装

    1. Tampermonkey官网
    2. Greasy Fork脚本站
    3. OpenUserJS脚本站
    4. 搜索”牛牛查求职助手”
    5. 粘贴代码并保存
  2. 开始使用

    • 访问支持的招聘网站
    • 脚本将自动运行并显示增强信息
    • 点击右下角的🏷️按钮查看功能介绍

使用说明

  1. 查看公司标签

    • 在职位列表中自动显示公司风险标签
    • 点击标签查看详细信息和风险说明
  2. 查询公司信息

    • 点击”🔍 牛牛查公司”按钮
    • 选择查询平台(天眼查、爱企查等)
    • 新窗口打开查询结果
  3. 查看职位时间

    • 职位信息区域显示发布和更新时间
    • 颜色编码帮助识别职位新鲜度

🛠️ 开发信息

技术栈

  • JavaScript – 核心脚本语言
  • Tampermonkey API – 浏览器扩展接口
  • CSS3 – 样式美化
  • DOM操作 – 页面元素增强

项目结构

niuniuchajobhunting/
├── tampermonkey/
│   └── icons/                                      # 图标
│   └── screenshot/                                 # 截图
│   └── 牛牛查求职助手-招聘网站信息增强工具.user.js    # 正式版本
│   └── README.md                                   # 项目说明
└── README.md                                       # 项目说明

核心配置

// 网站配置
const siteConfigs = {
  'we.51job.com': { /* 51job配置 */ },
  'www.zhipin.com': { /* BOSS直聘配置 */ },
  'campus.niuqizp.com': { /* 牛企直聘配置 */ }
};

// 公司标签数据库
const COMPANY_BLACKLISTS = {
  scam: { /* 诈骗公司名单 */ },
  outsourcing: { /* 外包公司名单 */ },
  training: { /* 培训机构名单 */ },
  custom: { /* 自定义标签 */ }
};

🔧 自定义配置

添加自定义公司标签

您可以编辑脚本中的COMPANY_BLACKLISTS对象来添加自定义公司标签:

// 在custom分类中添加需要标记的公司
custom: {
    name: '自定义',
    emoji: '&#x1f6a8;',
    color: '#9C27B0',
    companies: [
        '您要标记的公司名称1',
        '您要标记的公司名称2',
        // 更多公司...
    ]
}

修改查询服务

可以自定义公司查询服务:

const QUERY_SERVICES = [
    { name: '&#x1f50d; 百度', url: 'https://www.baidu.com/s?wd=' },
    { name: '&#x1f441;&#xfe0f; 天眼查', url: 'https://www.tianyancha.com/search?key=' },
    // 添加更多查询服务...
];

📊 功能特点

🧠 智能识别

  • 模糊匹配算法 – 精准识别公司类型,避免漏检
  • 多维度匹配 – 支持公司全名、简称、关键词匹配
  • 动态更新 – 实时监听页面变化,自动更新信息

🎨 用户体验

  • 响应式设计 – 适配桌面和移动设备
  • 无侵入式 – 不影响原网站功能和布局
  • 性能优化 – 高效DOM操作,不影响页面加载速度

🔒 隐私安全

  • 本地处理 – 所有数据在本地处理,不上传个人信息
  • 开源透明 – 代码完全开源,保证安全可靠
  • 无广告 – 纯净工具,专注功能实现

📸 功能截图

51job职位列表截图 51job职位列表

boss职位列表截图 boss职位列表

boss职位列表

牛企直聘职位详情截图 牛企直聘职位详情

🤝 贡献指南

欢迎为项目做出贡献!您可以通过以下方式参与:

🐛 报告问题

  • Issues中报告Bug
  • 提供详细的复现步骤和环境信息
  • 附上错误截图或日志信息

💡 功能建议

  • 提交新功能建议和改进意见
  • 分享使用经验和优化建议
  • 建议支持新的招聘平台

📝 代码贡献

  1. Fork本项目
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 创建Pull Request

📋 公司名单更新

帮助我们完善公司黑名单数据库:

  • 提供诈骗公司信息
  • 更新外包公司名单
  • 补充培训机构信息

📄 许可证

本项目采用 MIT License 许可证。

💬 联系方式

🙏 致谢

感谢以下项目和服务:

  • Tampermonkey – 强大的用户脚本管理器
  • jQuery – 高效的JavaScript库
  • 各大招聘平台 – 为求职者提供服务平台
  • 所有贡献者和用户 – 让项目变得更好

⭐ Star History

如果这个项目对您有帮助,请考虑给项目一个Star ⭐,这是对我们最大的鼓励!


让求职更安全,让选择更明智!
牛牛查求职助手 – 您的智能求职伙伴

Posted in 技术, 浏览器插件.

Tagged with , , .


B站职位爬虫playwright使用指南

B站职位爬虫使用指南

1. 项目简介

这是一个基于 Playwright 的 B 站职位信息爬虫,能够自动化爬取 B 站官网发布的社会招聘和校园招聘职位信息,并将数据保存为 JSON 格式的文件。

项目地址

2. 技术栈与依赖

  • Python: 程序开发语言
  • Playwright: 浏览器自动化工具,用于模拟浏览器行为获取页面数据
  • 第三方库: time, random, json, datetime, argparse, re, os, sys, typing

3. 安装与配置

3.1 安装依赖

# 安装 Playwright
pip install playwright

# 安装 Playwright 浏览器驱动
playwright install

3.2 项目结构

├── bilibili/
│   ├── test_playwright.py  # 主程序文件
│   ├── data/               # 数据保存目录
│   └── howto_playwright.md            # 使用指南文档

4. 运行方式

程序支持通过命令行参数控制爬取行为,主要参数包括招聘类型、爬取间隔、代理设置、起始页和最大爬取页数等。

4.1 基本语法

python test_playwright.py [参数选项]

4.2 可用参数

参数 说明 示例
--type 招聘类型 (social=社会招聘, campus=校园招聘, all=全部) --type social
--sleep 页面爬取间隔(秒) --sleep 2.5
--proxy 代理服务器地址 --proxy http://127.0.0.1:7890
--start-page 起始页码 --start-page 3
--max-page 最大抓取页数 (0为不限制) --max-page 10 d

4.3 运行示例

爬取校园招聘职位

python test_playwright.py --type campus --sleep 1.5 --max-page 5

使用代理爬取社会招聘职位

python test_playwright.py --type social --proxy http://127.0.0.1:7890 --start-page 2

5. 程序运行流程

整个程序的运行流程可以分为以下几个主要阶段:

5.1 参数解析与初始化

  1. 解析命令行参数,确定爬取配置
  2. 初始化爬虫开始时间
  3. 根据招聘类型确定爬取的URL

5.2 浏览器初始化

程序通过 init_browser() 函数初始化 Playwright 和浏览器环境:

  1. 根据操作系统类型决定是否使用无头模式(Linux下默认无头,其他系统默认有界面)
  2. 启动 Chromium 浏览器,配置浏览器参数(禁用自动化控制检测、禁用扩展等)
  3. 创建浏览器上下文,设置随机 User-Agent
  4. 创建新的页面对象并设置超时时间

5.3 页面访问与数据获取

  1. 首次访问职位列表页面(带重试机制)
  2. 获取职位类型和工作地点等字典数据
  3. 解析页面,获取最大页码数
  4. 根据设置的起始页和最大爬取页数,开始循环爬取

5.4 职位信息提取

对于每一页的职位信息,程序执行以下步骤:

  1. 加载当前页职位列表
  2. 获取职位卡片列表
  3. 遍历每个职位卡片:
    • 提取列表页上的基本信息(职位标题、地点、类别、工作类型、发布日期)
    • 模拟点击职位标题,打开新窗口查看详情
    • 在详情页提取更详细的职位信息
    • 构建完整的职位数据字典
  4. 将当前页数据添加到总数据列表
  5. 定期保存数据(每收集50条),避免意外丢失

5.5 数据保存

程序使用 save_job_list_data() 函数将爬取的数据保存为 JSON 文件:

  1. 创建 data 目录(如果不存在)
  2. 生成包含时间戳的文件名
  3. 将职位数据列表保存为 JSON 格式

5.6 程序结束处理

  1. 关闭页面、浏览器上下文和浏览器
  2. 执行垃圾回收
  3. 生成并打印爬取报告(包括开始时间、总页数、爬取页数、收集职位总数、是否成功、完成时间等信息)

6. 数据结构

爬取的职位数据包含以下字段:

{
  "position_id": "职位ID",
  "position_title": "职位名称",
  "location": "工作地点",
  "category": "职位类别",
  "job_type": "工作类型",
  "post_date": "发布日期",
  "position_url": "职位详情页URL",
  "position_detail": {
    "position_id": "职位ID",
    "position_url": "职位详情页URL",
    "title": "职位名称",
    "location": "工作地点",
    "category": "职位类别",
    "job_type": "工作类型",
    "post_date": "发布日期",
    "position_content": "职位详情内容"
  },
  "crawl_time": "爬取时间"
}

7. 防反爬策略

程序包含多种防反爬策略:

  1. 随机 User-Agent:每次运行随机选择一个浏览器标识
  2. 随机爬取间隔:在指定的爬取间隔基础上随机波动
  3. 指数退避重试:请求失败时使用指数退避算法进行重试
  4. 模拟真人行为:点击操作前加入随机延迟
  5. 禁用自动化检测:配置浏览器参数,避免被网站检测为自动化工具

8. 常见问题与解决方案

8.1 浏览器启动失败

问题:程序无法启动浏览器,报初始化错误

解决方案

  • 确认 Playwright 已正确安装:playwright install
  • 检查系统权限,确保有足够权限启动浏览器
  • 对于 Linux 系统,可能需要安装额外的依赖库

8.2 页面加载超时

问题:页面加载超时,无法获取职位信息

解决方案

  • 增加 --sleep 参数值,延长爬取间隔
  • 使用 --proxy 参数设置代理,避免IP被限制
  • 检查网络连接是否稳定

8.3 职位数据为空

问题:爬取完成但数据为空

解决方案

  • 检查网站结构是否发生变化(可能需要更新选择器)
  • 确认爬取的URL是否正确
  • 尝试调整起始页和最大爬取页数参数

9. 代码优化建议

  1. 错误处理增强:可以增加更细粒度的错误处理,针对不同类型的错误采取不同的重试策略
  2. 并发爬取:考虑引入异步或多线程爬取,提高效率(注意控制并发数,避免触发反爬)
  3. 数据去重:增加数据去重机制,避免重复爬取相同的职位信息
  4. 定时任务:结合定时任务工具,实现定期自动爬取
  5. 日志系统:引入专业的日志系统替代 print,方便问题排查和监控

10. 注意事项

  1. 请遵守网站的 robots.txt 规则和使用条款
  2. 合理设置爬取频率,避免对网站服务器造成过大压力
  3. 爬虫仅供学习和研究使用,请勿用于非法用途
  4. 定期更新代码以适应网站结构的变化

通过本指南,您应该能够理解并成功运行 B 站职位爬虫程序。如有任何问题或建议,欢迎提交反馈。

Posted in 爬虫spider.

Tagged with , .