151 lines
3.1 KiB
Markdown
151 lines
3.1 KiB
Markdown
# 安全方案对比
|
||
|
||
## 方案 A:前端内联 JSX(当前方案)
|
||
|
||
### 优点
|
||
- ✅ 离线可用
|
||
- ✅ 响应快速
|
||
- ✅ 开发简单
|
||
|
||
### 缺点
|
||
- ❌ **代码完全暴露**
|
||
- ❌ **可以被逆向破解**
|
||
- ❌ **用户可以绕过验证**
|
||
- ❌ **核心算法可被复制**
|
||
|
||
### 安全性
|
||
```
|
||
★☆☆☆☆ (1/5)
|
||
```
|
||
|
||
### 攻击方式
|
||
```javascript
|
||
// 攻击者可以直接修改前端代码:
|
||
// 1. 删除 verifyLicense() 调用
|
||
// 2. 直接调用 Layer.createLayer()
|
||
// 3. 复制 JSX 代码到自己的插件
|
||
```
|
||
|
||
---
|
||
|
||
## 方案 B:服务器端 JSX(推荐)
|
||
|
||
### 优点
|
||
- ✅ **核心代码在服务器,无法被窃取**
|
||
- ✅ **强制在线验证**
|
||
- ✅ **可以随时更新逻辑**
|
||
- ✅ **支持按功能付费**
|
||
- ✅ **完整的用户行为追踪**
|
||
|
||
### 缺点
|
||
- ❌ 需要联网
|
||
- ❌ 有延迟(通常 <100ms)
|
||
- ❌ 服务器成本
|
||
|
||
### 安全性
|
||
```
|
||
★★★★★ (5/5)
|
||
```
|
||
|
||
### 工作流程
|
||
```
|
||
客户端 服务器
|
||
------- --------
|
||
1. 点击按钮 →
|
||
2. 发送请求 → 验证许可证
|
||
验证设备绑定
|
||
检查用户等级
|
||
生成 JSX 代码
|
||
3. 接收代码 ← 返回 JSX
|
||
4. 执行代码
|
||
5. 显示结果
|
||
```
|
||
|
||
### 破解难度
|
||
- 前端只有 API 调用,没有核心逻辑
|
||
- 即使破解前端,也无法获取服务器端的 JSX 模板
|
||
- 服务器可以检测异常调用并封禁账号
|
||
|
||
---
|
||
|
||
## 方案 C:混合方案(平衡)
|
||
|
||
### 策略
|
||
- **基础功能** → 前端内联(离线可用)
|
||
- **核心功能** → 服务器端(保护算法)
|
||
- **高级功能** → 服务器端 + 付费验证
|
||
|
||
### 示例
|
||
```typescript
|
||
// 基础功能:前端内联(免费,离线)
|
||
await Layer.createLayer('新图层');
|
||
|
||
// 核心功能:服务器端(付费,在线)
|
||
await ServerJSX.createLayerWithStyle('设计图层', 80, '#FF0000');
|
||
|
||
// 高级功能:服务器端(高级会员专属)
|
||
await ServerJSX.aiAutoDesign(params);
|
||
```
|
||
|
||
### 安全性
|
||
```
|
||
★★★☆☆ (3/5)
|
||
```
|
||
|
||
---
|
||
|
||
## 🎯 推荐配置
|
||
|
||
### 商业产品(强保护)
|
||
```
|
||
✅ 使用方案 B(服务器端 JSX)
|
||
✅ 所有核心功能服务器化
|
||
✅ 前端代码混淆
|
||
✅ 设备指纹 + 硬件绑定
|
||
✅ 许可证在线验证
|
||
✅ 操作日志 + 异常检测
|
||
```
|
||
|
||
### 免费/开源产品(轻保护)
|
||
```
|
||
✅ 使用方案 A(前端内联 JSX)
|
||
✅ 基础代码混淆
|
||
✅ 可选的在线功能
|
||
```
|
||
|
||
---
|
||
|
||
## 💡 实现建议
|
||
|
||
### 1. 短期(快速上线)
|
||
使用方案 A + 基础保护:
|
||
- 代码混淆
|
||
- 许可证验证
|
||
- 行为记录
|
||
|
||
### 2. 中期(商业化)
|
||
迁移到方案 C:
|
||
- 保留基础功能在前端
|
||
- 核心算法移到服务器
|
||
- 实现付费功能
|
||
|
||
### 3. 长期(高价值产品)
|
||
完全方案 B:
|
||
- 所有核心功能服务器化
|
||
- AI 功能集成
|
||
- 多端同步
|
||
- 企业级管理
|
||
|
||
---
|
||
|
||
## ⚠️ 重要提醒
|
||
|
||
**前端代码永远可以被破解!**
|
||
|
||
真正的保护只有两种:
|
||
1. **服务器端执行** - 代码不在客户端
|
||
2. **硬件加密** - 使用加密狗(CEP 插件不支持)
|
||
|
||
其他所有前端保护(混淆、加密)都只是**增加破解难度**,不能完全防止。
|
||
|