更新小程序隐私保护机制,新增手机号一键登录功能,用户需同意隐私协议后方可获取手机号。优化多个页面的登录交互,提升用户体验。调整相关配置以支持新功能。

This commit is contained in:
Alex-larget
2026-03-20 13:40:13 +08:00
parent 0bc32deb94
commit 385e47bc55
60 changed files with 2954 additions and 1669 deletions

View File

@@ -0,0 +1,32 @@
# 挖矿病毒排查与服务器操作 Skills 创建
**日期**2026-03-20
## 背景
基于 agent 记录3b9e0fa0、bc781e1b、1c1a81c3 等中挖矿病毒排查经验以及本地部署脚本devloy.py、master.py、soul-admin/deploy.py、Cunkebao/miner_guard_install.py 等),将经验吸收转化为 Skills。
## 新增 Skills
### 1. security-miner-guard
- **路径**`.cursor/skills/security-miner-guard/SKILL.md`
- **触发词**挖矿病毒、xmrig、服务器被入侵、miner_guard、安全排查、杀挖矿
- **内容**挖矿病毒特征、入侵链路、排查脚本、加固建议、miner_guard 安装与检查
### 2. security-server-ops
- **路径**`.cursor/skills/security-server-ops/SKILL.md`
- **触发词**部署、服务器操作、SSH、宝塔、devloy、master、Cunkebao 部署
- **内容**:服务器索引、部署脚本索引、环境变量一览、常用操作(不含明文密码)
## 配置更新
- `paths.py`:新增 `AGENT_SECURITY``ROLE_TO_AGENT["安全工程师"]`
- `老板分身-索引.mdc`:经验自动收集推断增加「挖矿/安全/服务器操作→安全工程师」
- `soul-project-boundary.mdc`:按语义触发词增加安全工程师及对应 Skills
## 安全提醒
- Skills 中**不写入明文密码**,仅说明配置来源(环境变量、脚本 get_cfg()
- 建议将 master.py、devloy.py 等中的默认密码迁移到环境变量

View File

@@ -0,0 +1,24 @@
# 部署管理端触发词约定
**日期**2026-03-20
## 场景
用户说「帮我部署管理端到线上」时,安全工程师应直接执行部署脚本,无需再询问或选择。
## 解决方案
- **触发词**:帮我部署管理端到线上
- **动作**:直接执行 `cd soul-api && python master.py`
- **脚本**`soul-api/master.py`soul-api 正式环境部署)
## 已升级 Skills
1. **security-server-ops**:何时使用表新增该触发词,明确直接执行命令
2. **soul-project-boundary**:按场景触发词表新增,加载 security-server-ops 后执行
## 说明
- `master.py` 部署的是 soul-apiGo 后端),非 soul-admin 前端
- 若需部署 soul-admin 前端,应使用 `soul-admin/deploy.py`
- 用户明确指定「管理端」对应 master.py按约定执行

View File

@@ -0,0 +1,8 @@
# 安全工程师 经验索引
> 挖矿病毒排查、服务器加固、部署与运维相关经验。
| 日期 | 摘要 | 文件 |
|------|------|------|
| 2026-03-20 | 挖矿病毒排查经验转化为 Skills服务器操作 Skill 创建 | 2026-03-20-挖矿与服务器Skills.md |
| 2026-03-20 | 「帮我部署管理端到线上」→ 执行 soul-api/master.py | 2026-03-20-部署管理端触发词.md |

View File

@@ -54,6 +54,7 @@
| 2026-03-18 | 小程序、团队 | 业务规则/最佳实践 | - | 分享链路兼容好友/朋友圈 singlePage单页模式能力降级不支付/不自动领取),引导点击底部“前往小程序”进入完整版 |
| 2026-03-18 | 产品、后端、管理端、测试 | 文档归档/需求口径 | - | 文档归档整理:以《以界面定需求》为基准,各角色重整“功能需求+验收口径+风险点”并写入各自经验库;补齐《项目落地推进表》 |
| 2026-03-19 | 小程序 | 最佳实践 | miniprogram-dev SKILL §11 | 原生按钮覆盖定位chooseAvatar 等用绝对定位 overlay 覆盖,禁止 button 包裹,避免原生样式影响(灰色矩形等) |
| 2026-03-20 | 安全工程师 | 触发词约定 | security-server-ops、soul-project-boundary | 「帮我部署管理端到线上」→ 直接执行 soul-api/master.py |
---
@@ -64,4 +65,4 @@
---
**最后更新**2026-03-18
**最后更新**2026-03-20

View File

@@ -31,9 +31,10 @@ Soul 创业派对全项目架构与约定路由隔离miniprogram/admin/db
| 2026-03-17 | 性能优化与 Redis 缓存方案落地Redis 容灾回退 DB、OSS 上传容灾;/health 返回 database/redis 状态 | 已完成 |
| 2026-03-18 | 吸收经验:分享进入链路需兼容朋友圈 singlePage单页模式不执行支付/自动领取等强动作并引导“前往小程序” | 已完成 |
| 2026-03-18 | 会议:超级个体开通后自动创建@人统一走 Person幂等键绑定 userId默认资料 flags 后端输出 | 已完成 |
| 2026-03-20 | 「帮我部署管理端到线上」→ 安全工程师执行 soul-api/master.pysecurity-server-ops、soul-project-boundary 触发词升级 | 已完成 |
> **格式说明**:每次架构级讨论后在此追加一行,日期格式 YYYY-MM-DD
---
**最后更新**2026-03-18
**最后更新**2026-03-20

View File

@@ -53,6 +53,7 @@ AGENT_BACKEND = AGENT / "后端工程师"
AGENT_PRODUCT = AGENT / "产品经理"
AGENT_TEST = AGENT / "软件测试"
AGENT_TEAM = AGENT / "团队"
AGENT_SECURITY = AGENT / "安全工程师"
# ========== 常用文件 ==========
RULE_MAIN = RULES / "老板分身-索引.mdc"
@@ -80,6 +81,9 @@ ROLE_TO_AGENT = {
"软件测试": "软件测试",
"测试": "软件测试",
"测试人员": "软件测试",
# 安全
"安全工程师": "安全工程师",
"安全": "安全工程师",
# 通用
"团队": "团队",
}

View File

@@ -50,6 +50,7 @@ alwaysApply: true
| 小程序、miniprogram、C 端、微信小程序 | 小程序开发工程师 | `e:\Gongsi\Mycontent\.cursor\skills\miniprogram-dev\SKILL.md` |
| 产品、需求、验收、排期、需求文档 | 产品经理 | `e:\Gongsi\Mycontent\.cursor\skills\product-manager\SKILL.md` |
| 测试、测试用例、回归测试、功能测试、QA | 测试人员 | `e:\Gongsi\Mycontent\.cursor\skills\testing\SKILL.md` |
| 挖矿、安全、服务器操作、部署、miner_guard、xmrig、入侵排查 | 安全工程师 | `e:\Gongsi\Mycontent\.cursor\skills\security-miner-guard\SKILL.md`、`e:\Gongsi\Mycontent\.cursor\skills\security-server-ops\SKILL.md` |
### 按场景触发词
@@ -63,5 +64,6 @@ alwaysApply: true
| 会议结束、散会、会开完了 | `e:\Gongsi\Mycontent\.cursor\skills\assistant-doc-sync\SKILL.md`(会议收尾) |
| **加个需求**、加个需求xxx | `e:\Gongsi\Mycontent\.cursor\skills\product-manager\SKILL.md`(产品经理三端分析 → 功能规划 → 指派) |
| **新版分析**、版本对比、迁移分析、甲方代码分析、快速分析新版、抽取需求 | `e:\Gongsi\Mycontent\.cursor\skills\new-version-analyze\SKILL.md`(新版快速分析 → 差异清单 → 接口冲突 → 迁移迭代) |
| **帮我部署管理端到线上** | `e:\Gongsi\Mycontent\.cursor\skills\security-server-ops\SKILL.md`(安全工程师 → 执行 soul-api/master.py |
**注意**:「必须 Read」= 使用 Read 工具读取**绝对路径**的完整文件内容后执行,不可跳过或仅凭记忆。

View File

@@ -39,6 +39,7 @@ alwaysApply: true
- 产品/需求/config→**产品经理**
- 测试/自检/QA→**软件测试**
- 架构/选型/路由约定/三端协同→**团队**
- 挖矿/安全/服务器操作/部署/入侵排查→**安全工程师**
- 无法判断→**通用**(写入开发助理)
3. **若可写文件**
- **有明确目标角色**:写入 `.cursor/agent/{角色}/evolution/YYYY-MM-DD-简短描述.md`,并更新该目录下的 `索引.md`

View File

@@ -83,6 +83,7 @@ description: 开发团队文档同步与经验升级。小橙、橙子、讨论
| 后端开发 | `agent/后端工程师/evolution/` | `agent/开发助理/项目索引/后端.md` |
| 产品经理 | `agent/产品经理/evolution/` | `agent/开发助理/项目索引/产品.md` |
| 测试人员 | `agent/软件测试/evolution/` | `agent/开发助理/项目索引/测试.md` |
| 安全工程师 | `agent/安全工程师/evolution/` | `agent/开发助理/项目索引/团队.md` |
| 助理橙子 | `agent/开发助理/evolution/` | `agent/开发助理/项目索引/助理橙子.md` |
| 跨角色/团队 | `agent/团队/evolution/` | `agent/开发助理/项目索引/团队.md` |

View File

@@ -0,0 +1,112 @@
---
description: Soul 挖矿病毒排查与防护。xmrig、kdevtmpfsi、kinsing、minerd、miner_guard。Use when 挖矿病毒、xmrig、服务器被入侵、miner_guard、安全排查、杀挖矿.
---
# SKILL - 挖矿病毒排查与防护(安全工程师)
> 基于 Soul 项目历史排查经验沉淀,用于快速识别、清理挖矿病毒并加固服务器。
## 何时使用
| 触发词 | 动作 |
|--------|------|
| 挖矿病毒、xmrig、服务器被入侵 | 执行排查与清理流程 |
| miner_guard、安装挖矿守护 | 安装/检查 miner_guard |
| 安全排查、杀挖矿 | 按本 Skill 执行 |
---
## 一、挖矿病毒特征Soul 项目实测)
### 1.1 进程/路径关键词
| 关键词 | 说明 |
|--------|------|
| xmrig | 门罗币挖矿程序,最常见 |
| xmr-stak, minerd, cpuminer | 其他 CPU 挖矿 |
| kdevtmpfsi, kinsing | Linux 常见挖矿木马 |
| stratum | 矿池协议 |
| libprocesshider, watchbog, ddgs, trace | 隐藏/持久化相关 |
### 1.2 常见路径
- `/tmp/xmrig``/tmp/config.json``/tmp/.x`
- `/tmp/kdevtmpfsi``/tmp/kinsing`
- `/www/wwwroot/**/xmrig*`(宝塔站点目录下残留)
- `/www/wwwroot/self/wanzhi/tongzhi/xmrig-*`(历史发现)
### 1.3 入侵链路Soul 项目根因分析)
```
公网访问宝塔 9988 → 弱口令/漏洞 → 进入面板 → www 用户执行命令
→ 下载 xmrig 到 /tmp → 运行挖矿
```
**最可能入口**:宝塔面板 9988 对公网开放 + 弱口令/历史漏洞。
---
## 二、排查与清理脚本soul-api 目录)
| 脚本 | 用途 |
|------|------|
| `miner_guard_check.py` | 检查 miner_guard 安装状态,手动执行一次脚本,查看日志 |
| `miner_guard_install.py` | 安装挖矿守护到服务器(上传 miner_guard.sh + 配置 cron/systemd |
| `miner_guard.sh` | 守护脚本本体(杀进程、删文件、扫 /tmp、/www/wwwroot |
| `remove_xmrig_self.py` | 删除固定路径 `/www/wwwroot/self/wanzhi/tongzhi/xmrig-6.24.0` |
### 2.1 快速检查(本地执行)
```powershell
cd e:\Gongsi\Mycontent\soul-api
python miner_guard_check.py
```
依赖:`pip install paramiko`。配置来源:`master.py``get_cfg()` 或环境变量 `DEPLOY_HOST``DEPLOY_PASSWORD` 等。
### 2.2 安装挖矿守护
```powershell
cd e:\Gongsi\Mycontent\soul-api
python miner_guard_install.py --yes
```
- 上传 `miner_guard.sh``/root/miner_guard.sh`
- 优先写入 `/etc/cron.d/miner_guard`(每 30 分钟),失败则尝试 crontab 或 systemd timer
- 日志:`/var/log/miner_guard.log`
### 2.3 Cunkebao 服务器
```powershell
cd e:\Gongsi\Mycontent\Cunkebao
python miner_guard_install.py --yes
```
使用 Cunkebao 内嵌配置(非 root 用户,日志在 `~/miner_guard.log`)。
---
## 三、加固建议(防止再次入侵)
| 优先级 | 措施 |
|--------|------|
| 1 | 宝塔面板9988 仅允许指定 IP 访问;改非常规端口(如 29988强密码 |
| 2 | 修改所有密码root、宝塔、宝塔 API、MySQL、Redis |
| 3 | Redis`bind 127.0.0.1`,设置 `requirepass` |
| 4 | 敏感信息:密码/API Key 用环境变量,不提交到 Git |
---
## 四、miner_guard.sh 行为摘要
1. **杀进程**`pgrep -f xmrig|kdevtmpfsi|kinsing|...``kill -9`
2. **删已知路径**`/tmp/xmrig``/tmp/config.json`
3. **扫 /tmp、/var/tmp、/dev/shm**:含挖矿关键词的可执行文件 → `rm -f`
4. **扫 /www/wwwroot**:含 xmrig 的目录/文件 → `rm -rf` / `rm -f`
5. **检查 www 用户 crontab**:可疑项仅提示,不自动删
---
## 五、注意事项
- 脚本会按关键词删除,可能与业务目录重叠,部署前确认扫描范围
- `master.py``devloy.py` 等含默认密码,应改为环境变量并确保 `.env` 不入库

View File

@@ -0,0 +1,137 @@
---
description: Soul 服务器操作与部署。部署脚本、SSH、宝塔、环境变量。Use when 部署、服务器操作、SSH、宝塔、devloy、master、Cunkebao 部署.
---
# SKILL - 服务器操作与部署(安全工程师)
> Soul 项目部署脚本索引与服务器操作规范。**密码等敏感信息仅通过环境变量或脚本内 get_cfg() 读取,不在此文档明文列出。**
## 何时使用
| 触发词 | 动作 |
|--------|------|
| **帮我部署管理端到线上** | **直接执行 `cd soul-api && python master.py`** |
| 部署、服务器操作、SSH | 按本 Skill 选择对应脚本 |
| 宝塔、devloy、master | 查阅部署配置与命令 |
| Cunkebao 部署 | 使用 Cunkebao 专用脚本 |
---
## 一、服务器与配置来源
### 1.1 配置读取优先级
各部署脚本统一约定:
1. **环境变量**(推荐):`DEPLOY_HOST``DEPLOY_USER``DEPLOY_PASSWORD``DEPLOY_SSH_PORT``BT_API_KEY`
2. **脚本内 get_cfg()**:无环境变量时使用脚本默认值
3. **master.py**soul-api 的 miner_guard_check、remove_xmrig_self 等从 `soul-api/master.py``get_cfg()` 读取
### 1.2 服务器索引(配置来源,不含明文密码)
| 项目 | 主机 | 端口 | 用户 | 配置来源 |
|------|------|------|------|----------|
| soul-api 正式 | 43.139.27.93 | 22022 | root | master.py / 环境变量 |
| soul-api 测试 | 43.139.27.93 | 22022 | root | devloy.py / 环境变量 |
| soul-admin | 43.139.27.93 | 22022 | root | soul-admin/deploy.py / 环境变量 |
| Cunkebao | 42.194.245.239 | 6523 | yongpxu | Cunkebao/miner_guard_install.py 内嵌 |
**密码**:从 `DEPLOY_PASSWORD` 或各脚本 `get_cfg()` 默认值读取,**不在此文档记录**。
---
## 二、部署脚本索引
### 2.1 soul-api
| 脚本 | 用途 | 命令示例 |
|------|------|----------|
| `soul-api/devloy.py` | 测试环境部署binary/docker/runner | `python devloy.py --mode runner` |
| `soul-api/master.py` | 正式环境部署 | `python master.py` |
| `soul-api/deploy/runner-init.sh` | Runner 容器首次初始化 | `bash deploy/runner-init.sh` |
| `soul-api/deploy/docker-deploy-remote.sh` | 服务器上执行蓝绿切换 | 由 devloy 自动调用 |
| `soul-api/deploy/deploy-runner-remote.sh` | Runner 模式部署包拷贝 | 由 devloy 自动调用 |
**devloy 模式**
- `--mode runner`:容器内红蓝切换,宝塔固定 9001
- `--mode docker`:宿主机蓝绿,需 Nginx 切换
- `--mode binary`Go 二进制 + 宝塔 soulDev
### 2.2 soul-admin
| 脚本 | 用途 | 命令示例 |
|------|------|----------|
| `soul-admin/deploy.py` | 静态站点部署dist → dist2 互换) | `python deploy.py` |
### 2.3 挖矿防护
| 脚本 | 用途 | 命令示例 |
|------|------|----------|
| `soul-api/miner_guard_install.py` | 安装挖矿守护soul 服务器) | `python miner_guard_install.py --yes` |
| `Cunkebao/miner_guard_install.py` | 安装挖矿守护Cunkebao | `cd Cunkebao && python miner_guard_install.py --yes` |
---
## 三、环境变量一览
| 变量 | 说明 | 默认来源 |
|------|------|----------|
| DEPLOY_HOST | SSH 主机 | 各脚本 get_cfg() |
| DEPLOY_USER | SSH 用户 | root |
| DEPLOY_PASSWORD | SSH 密码 | 脚本默认 / 需设置 |
| DEPLOY_SSH_KEY | SSH 私钥路径 | 空 |
| DEPLOY_SSH_PORT | SSH 端口 | 22022 |
| BT_PANEL_URL | 宝塔面板 URL | https://{host}:9988 |
| BT_API_KEY | 宝塔 API 密钥 | 脚本内默认 |
| BT_GO_PROJECT_NAME | 宝塔 Go 项目名 | soulDev / soulApi |
| DEPLOY_DOCKER_PATH | 部署目录 | /www/wwwroot/self/soul-dev |
| DEPLOY_NGINX_CONF | Nginx 配置路径 | 空(可自动探测) |
---
## 四、常用操作
### 4.1 SSH 连接(示例,密码从环境变量读取)
```powershell
# 设置环境变量后
$env:DEPLOY_HOST="43.139.27.93"
$env:DEPLOY_PASSWORD="<从安全存储读取>"
ssh -p 22022 root@43.139.27.93
```
### 4.2 部署 soul-api 测试环境Runner 模式)
```powershell
cd e:\Gongsi\Mycontent\soul-api
python devloy.py --mode runner
```
### 4.3 部署 soul-api 正式环境
```powershell
cd e:\Gongsi\Mycontent\soul-api
python master.py
```
### 4.4 部署 soul-admin
```powershell
cd e:\Gongsi\Mycontent\soul-admin
python deploy.py
```
### 4.5 检查挖矿守护
```powershell
cd e:\Gongsi\Mycontent\soul-api
python miner_guard_check.py
```
---
## 五、安全提醒
- **不要将密码提交到 Git**master.py、devloy.py 等中的默认密码应迁移到环境变量
- **宝塔 API 密钥**BT_API_KEY 若泄露需在宝塔面板重新生成
- **敏感文件**`.env``master.py` 等应加入 `.gitignore` 或使用 `.env.example` 模板