From 0694143162737ee9db2a08cc597329123034a947 Mon Sep 17 00:00:00 2001 From: BlueRose <378100977@qq.com> Date: Thu, 23 Apr 2026 18:50:08 +0800 Subject: [PATCH] vault backup: 2026-04-23 18:50:08 --- .../various-complements/histories.json | 2 +- .../WY/Website/Netease AITA ArtLib.md | 39 ++++++++++++++++++- 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/.obsidian/plugins/various-complements/histories.json b/.obsidian/plugins/various-complements/histories.json index c731333..30cd633 100644 --- a/.obsidian/plugins/various-complements/histories.json +++ b/.obsidian/plugins/various-complements/histories.json @@ -1 +1 @@ -{"要解决这个问题,得对记忆进行合理规划与维护:":{"要解决这个问题,得对记忆进行合理规划与维护:":{"currentFile":{"count":1,"lastUpdated":1774938677236}}},"Openclaw-workspace":{"Openclaw-workspace":{"currentFile":{"count":1,"lastUpdated":1774938879095}}},"workflow":{"workflow":{"currentFile":{"count":1,"lastUpdated":1775020352083}}},"\\AI\\Skill\\MatrixAITA-POPODocs-Skill、D":{"\\AI\\Skill\\MatrixAITA-POPODocs-Skill、D":{"currentFile":{"count":1,"lastUpdated":1776242568663}}},"推荐加在仓库内已有的标准元数据文件中,例如:":{"推荐加在仓库内已有的标准元数据文件中,例如:":{"currentFile":{"count":1,"lastUpdated":1776242909075}}},"推荐加在仓库内已有的标准元数据文件中,":{"推荐加在仓库内已有的标准元数据文件中,":{"currentFile":{"count":1,"lastUpdated":1776242914868}}},"Screenshots":{"Screenshots":{"currentFile":{"count":1,"lastUpdated":1776309732196}}},"WorkSpace":{"WorkSpace":{"currentFile":{"count":1,"lastUpdated":1776315471938}}},"VPS账号 以及PS4 DNS":{"VPS账号 以及PS4 DNS":{"internalLink":{"count":1,"lastUpdated":1776322449307}}},"G37、G37":{"G37、G37":{"currentFile":{"count":1,"lastUpdated":1776416826672}}},"GIt&SVN简报":{"GIt&SVN简报":{"internalLink":{"count":1,"lastUpdated":1776661549625}}},"redoc":{"redoc":{"currentFile":{"count":1,"lastUpdated":1776854054282}}}} \ No newline at end of file +{"要解决这个问题,得对记忆进行合理规划与维护:":{"要解决这个问题,得对记忆进行合理规划与维护:":{"currentFile":{"count":1,"lastUpdated":1774938677236}}},"Openclaw-workspace":{"Openclaw-workspace":{"currentFile":{"count":1,"lastUpdated":1774938879095}}},"workflow":{"workflow":{"currentFile":{"count":1,"lastUpdated":1775020352083}}},"\\AI\\Skill\\MatrixAITA-POPODocs-Skill、D":{"\\AI\\Skill\\MatrixAITA-POPODocs-Skill、D":{"currentFile":{"count":1,"lastUpdated":1776242568663}}},"推荐加在仓库内已有的标准元数据文件中,例如:":{"推荐加在仓库内已有的标准元数据文件中,例如:":{"currentFile":{"count":1,"lastUpdated":1776242909075}}},"推荐加在仓库内已有的标准元数据文件中,":{"推荐加在仓库内已有的标准元数据文件中,":{"currentFile":{"count":1,"lastUpdated":1776242914868}}},"Screenshots":{"Screenshots":{"currentFile":{"count":1,"lastUpdated":1776309732196}}},"WorkSpace":{"WorkSpace":{"currentFile":{"count":1,"lastUpdated":1776315471938}}},"VPS账号 以及PS4 DNS":{"VPS账号 以及PS4 DNS":{"internalLink":{"count":1,"lastUpdated":1776322449307}}},"G37、G37":{"G37、G37":{"currentFile":{"count":1,"lastUpdated":1776416826672}}},"GIt&SVN简报":{"GIt&SVN简报":{"internalLink":{"count":1,"lastUpdated":1776661549625}}},"redoc":{"redoc":{"currentFile":{"count":1,"lastUpdated":1776854054282}}},"的访问权限":{"的访问权限":{"currentFile":{"count":1,"lastUpdated":1776939597742}}}} \ No newline at end of file diff --git a/07-Other/AI/AI Agent/WY/Website/Netease AITA ArtLib.md b/07-Other/AI/AI Agent/WY/Website/Netease AITA ArtLib.md index c4ba6ff..8a392f8 100644 --- a/07-Other/AI/AI Agent/WY/Website/Netease AITA ArtLib.md +++ b/07-Other/AI/AI Agent/WY/Website/Netease AITA ArtLib.md @@ -215,4 +215,41 @@ clouderve的目录结构: Artstation信息提取: -https://skills.netease.com/skills/skill_65b044f0dd0c \ No newline at end of file +https://skills.netease.com/skills/skill_65b044f0dd0c + +--- + +# legendary 安全分析 +对.\docs\legendary中的代码进行分析。 + +1. 使用 legendary 是否可以获取Fab的授权信息?是个人授权还是商业授权?还是其他授权? +2. 账号登录安全性分析,是否有将账号登录信息泄露到第三方的风险(除了Epicgame)?绘制登录路径以及相关代码,方便人工进行审核。 +3. 分析这个工程完整的安全性,是否有木马、病毒、信息泄露等安全风险,列出相关网络操作以及危险操作的代码位置。 +4. .\docs\legendarylegendary\api\lgd.py 中调用第三方API是否有风险? + + + +我现在只需要下载fab资产功能,你参考一下legendary,帮我使用nodejs编写一个合适、能够长时间运行的脚本,支持多个任务一起下载,而且提供若干若干接口取得当前下载进度。 +获取授权的方式我已经解包了,在.\docs\har\www.fab.com.har + +## 问题 + + +1. Puppeteer 自动获取 vs Epic OAuth => 你先确认Epic OAuth是否可用,默认使用这个。毕竟服务端无法在开户段打开无头浏览器 +2. 这个下载服务要放在哪个包里 => 放到Server里,管理员会从后台页面查看具体情况。加入之后也方便TDD流程,减少bug概率。 + + authorizationCode 泄露的风险分析: + + 不会直接获得账号完全控制权。原因: + 1. 短效 — authorization_code 一次性使用,有效期很短(通常 5 分钟),用过即失效 + 2. 受限范围 — 通过 legendary 的 client_id 获取的 token 权限是有限的,只能访问 Epic 为 launcher 开放的 API(游戏库、下载、云存档),不能修改密码、修改邮箱、进行购买 + 3. 可撤销 — 用户可以在 Epic 账户设置中随时撤销第三方 app 的访问权限 + + 真正的风险是 refresh_token: + - refresh_token 长效(可以持续续期),如果泄露则攻击者可以持续获取新的 access_token + - 但权限仍限于 launcher scope — 能看到库列表、下载已购内容,不能修改账户安全设置 + + 我们的安全措施: + - refresh_token 存储在 MongoDB 中,不暴露在 API 响应中 + - authorization_code 只在内存中短暂存在,用完即丢 + - 所有认证相关路由在 Admin 认证保护下 \ No newline at end of file