3.1 KiB
3.1 KiB
安全方案对比
方案 A:前端内联 JSX(当前方案)
优点
- ✅ 离线可用
- ✅ 响应快速
- ✅ 开发简单
缺点
- ❌ 代码完全暴露
- ❌ 可以被逆向破解
- ❌ 用户可以绕过验证
- ❌ 核心算法可被复制
安全性
★☆☆☆☆ (1/5)
攻击方式
// 攻击者可以直接修改前端代码:
// 1. 删除 verifyLicense() 调用
// 2. 直接调用 Layer.createLayer()
// 3. 复制 JSX 代码到自己的插件
方案 B:服务器端 JSX(推荐)
优点
- ✅ 核心代码在服务器,无法被窃取
- ✅ 强制在线验证
- ✅ 可以随时更新逻辑
- ✅ 支持按功能付费
- ✅ 完整的用户行为追踪
缺点
- ❌ 需要联网
- ❌ 有延迟(通常 <100ms)
- ❌ 服务器成本
安全性
★★★★★ (5/5)
工作流程
客户端 服务器
------- --------
1. 点击按钮 →
2. 发送请求 → 验证许可证
验证设备绑定
检查用户等级
生成 JSX 代码
3. 接收代码 ← 返回 JSX
4. 执行代码
5. 显示结果
破解难度
- 前端只有 API 调用,没有核心逻辑
- 即使破解前端,也无法获取服务器端的 JSX 模板
- 服务器可以检测异常调用并封禁账号
方案 C:混合方案(平衡)
策略
- 基础功能 → 前端内联(离线可用)
- 核心功能 → 服务器端(保护算法)
- 高级功能 → 服务器端 + 付费验证
示例
// 基础功能:前端内联(免费,离线)
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 功能集成
- 多端同步
- 企业级管理
⚠️ 重要提醒
前端代码永远可以被破解!
真正的保护只有两种:
- 服务器端执行 - 代码不在客户端
- 硬件加密 - 使用加密狗(CEP 插件不支持)
其他所有前端保护(混淆、加密)都只是增加破解难度,不能完全防止。