feat(v2.4.0): JSVMP 双路径攻克体系 + jsdom 环境补丁知识库
基于实战经验重构 JSVMP 分析框架: - SKILL.md: 新增路径选择决策树(路径 A 算法追踪 vs 路径 B 环境伪装) - SKILL.md: 路径 B「环境伪装六步法」完整方法论(采集→对比→分级→补丁→验证→端到端) - SKILL.md: 新增场景 10「JSVMP + jsdom 环境伪装」、解法模式 E - SKILL.md: 标注三板斧适用边界与局限,经验法则扩充至 22 条 - references/jsdom-env-patches.md: 新增 jsdom 环境补丁知识库(Function.toString 三层防御 / plugins 完整模拟 / DOM 布局属性 / 30+ API 存根) - cases/: 新增经验库系统(模板 + 首个 JSVMP 实战案例含 58 项环境检测差异全表) - references/jsvmp-analysis.md: JSVMP 专项分析详细指南 - references/troubleshooting.md: 常见问题排查指南 - templates/python-request/: Python 项目模板 - 各 references 文档增强、Python 技术栈支持、MCP v1.1 适配(44→52 工具) Made-with: Cursor
This commit is contained in:
@@ -27,11 +27,11 @@
|
||||
|
||||
### 解决方案
|
||||
|
||||
#### 方案 A:使用浏览器自动化(最可靠)
|
||||
#### 方案 A:使用 Camoufox 反检测浏览器(最可靠)
|
||||
|
||||
```javascript
|
||||
// 使用 chrome-devtools MCP 在真实浏览器中执行请求
|
||||
// [chrome-devtools] evaluate_script
|
||||
// 使用 camoufox-reverse MCP 在 Camoufox 浏览器环境中执行请求
|
||||
// [camoufox-reverse] evaluate_js
|
||||
const response = await fetch('https://target.com/api/data', {
|
||||
method: 'GET',
|
||||
headers: { 'Cookie': cookieValue },
|
||||
@@ -42,7 +42,9 @@ const data = await response.json();
|
||||
|
||||
```
|
||||
MCP 操作:
|
||||
[chrome-devtools] evaluate_script(function="fetch(url).then(r=>r.json()).then(d=>JSON.stringify(d))")
|
||||
[camoufox-reverse] launch_browser()
|
||||
[camoufox-reverse] navigate(url="https://target.com")
|
||||
[camoufox-reverse] evaluate_js(expression="fetch(url, options).then(r=>r.json()).then(d=>JSON.stringify(d))")
|
||||
```
|
||||
|
||||
#### 方案 B:curl-impersonate
|
||||
@@ -157,10 +159,12 @@ const client = axios.create({
|
||||
});
|
||||
```
|
||||
|
||||
### MCP 模拟
|
||||
### MCP 侧验证
|
||||
|
||||
```
|
||||
[chrome-devtools] emulate(userAgent="自定义UA")
|
||||
[camoufox-reverse] launch_browser(os_type="macos")
|
||||
[camoufox-reverse] get_fingerprint_info
|
||||
→ 验证当前浏览器环境中的 UA、平台和指纹是否与目标站点要求一致
|
||||
```
|
||||
|
||||
## 4. Referer 校验
|
||||
|
||||
Reference in New Issue
Block a user