|
@@ -35,7 +35,7 @@
|
|
1. [Layout 设计](#layout-%E8%AE%BE%E8%AE%A1)
|
|
1. [Layout 设计](#layout-%E8%AE%BE%E8%AE%A1)
|
|
1. 限流设计
|
|
1. 限流设计
|
|
1. 编辑器设计
|
|
1. 编辑器设计
|
|
-1. 防作弊设计
|
|
|
|
|
|
+1. [防作弊设计](#prevent-cheating-%E9%98%B2%E4%BD%9C%E5%BC%8A%E8%AE%BE%E8%AE%A1)
|
|
1. [局部技术难点](#tech-challenges-%E5%B1%80%E9%83%A8%E6%8A%80%E6%9C%AF%E9%9A%BE%E7%82%B9)
|
|
1. [局部技术难点](#tech-challenges-%E5%B1%80%E9%83%A8%E6%8A%80%E6%9C%AF%E9%9A%BE%E7%82%B9)
|
|
1. [技术特性验证](#tech-verify-%E6%8A%80%E6%9C%AF%E7%89%B9%E6%80%A7%E9%AA%8C%E8%AF%81)
|
|
1. [技术特性验证](#tech-verify-%E6%8A%80%E6%9C%AF%E7%89%B9%E6%80%A7%E9%AA%8C%E8%AF%81)
|
|
1. [升级策略](#upgrade-strategy-%E5%8D%87%E7%BA%A7%E7%AD%96%E7%95%A5)
|
|
1. [升级策略](#upgrade-strategy-%E5%8D%87%E7%BA%A7%E7%AD%96%E7%95%A5)
|
|
@@ -509,6 +509,24 @@ http/ws proxy
|
|
1. rollup.js
|
|
1. rollup.js
|
|
1. js-obfuscator
|
|
1. js-obfuscator
|
|
|
|
|
|
|
|
+```js
|
|
|
|
+{
|
|
|
|
+ rotateStringArray: true,
|
|
|
|
+ // 防止打开devtools,打开后程序会冻结
|
|
|
|
+ // debugProtection: true,
|
|
|
|
+ // debugProtectionInterval: true,
|
|
|
|
+ // // 防止代码格式化
|
|
|
|
+ // selfDefending: true,
|
|
|
|
+ // // 要测试sourcemap是否还有用,以下sourcemap配置不起作用
|
|
|
|
+ // sourceMap: true,
|
|
|
|
+ // sourceMapBaseUrl: "http://localhost",
|
|
|
|
+ // sourceMapFileName: "exam",
|
|
|
|
+ // sourceMapMode: "separate",
|
|
|
|
+ splitStrings: true,
|
|
|
|
+ // stringArrayEncoding: ["none", "base64", "rc4"],
|
|
|
|
+}
|
|
|
|
+```
|
|
|
|
+
|
|
### 消极影响:
|
|
### 消极影响:
|
|
|
|
|
|
查错会很困难,会变慢。
|
|
查错会很困难,会变慢。
|
|
@@ -518,6 +536,22 @@ Todolist:
|
|
// sessionStorage design
|
|
// sessionStorage design
|
|
// store 防破解?仅保存 user, QECSConfig 信息
|
|
// store 防破解?仅保存 user, QECSConfig 信息
|
|
|
|
|
|
|
|
+## 前端加密解密设计
|
|
|
|
+
|
|
|
|
+前后端协商加密解密,避免接口敏感信息被暴露。
|
|
|
|
+
|
|
|
|
+1. 前后端协商N(比如5)种加密解密方式
|
|
|
|
+2. 后端选择加密的组合方式,1到2种进行连续加密
|
|
|
|
+3. 前端在需要加密的接口使用后端规定的加密方式进行连续加密,参数要加上时间戳
|
|
|
|
+4. 后端验证通过后,返回的response也是用之前加密的方式加密过,前端再进行相应的解密
|
|
|
|
+5. 加密方式被禁用后,仅影响开考接口?
|
|
|
|
+6. 后端对加密方案的选择:间隔一段时间才换加密组合
|
|
|
|
+
|
|
|
|
+## Prevent cheating: 防作弊设计
|
|
|
|
+
|
|
|
|
+1. 检测伪装Chrome版本号的行为 - 检测Chrome高能力特性
|
|
|
|
+
|
|
|
|
+
|
|
## tech challenges: 局部技术难点
|
|
## tech challenges: 局部技术难点
|
|
|
|
|
|
技术难题:
|
|
技术难题:
|
|
@@ -553,14 +587,20 @@ paramsSerializer QS defaults: null => '' ; undefined => omit ; change arrayForma
|
|
|
|
|
|
## Upgrade strategy: 升级策略
|
|
## Upgrade strategy: 升级策略
|
|
|
|
|
|
-如果不改接口,仅增加接口,可以分学校升级。
|
|
|
|
-但此次是为了代码混淆和接口加密而升级的,如果存在多个版本,容易被对比。
|
|
|
|
-建议充分测试后,全量升级。
|
|
|
|
|
|
+新增加API支持新前端,后端维护多套API,一次升级。
|
|
|
|
+前端保持多套,新旧共存。
|
|
|
|
+nginx通过域名来分发新旧前端代码。
|
|
|
|
+如此,可支持前端灰度升级。
|
|
|
|
|
|
## Optional feature: 选做功能
|
|
## Optional feature: 选做功能
|
|
|
|
|
|
-1. electron crash 日志捕获及上传
|
|
|
|
|
|
+1. Electron crash 日志捕获及上传
|
|
1. 不适用的宿主环境日志
|
|
1. 不适用的宿主环境日志
|
|
|
|
+1. Electron启动速度
|
|
|
|
+1. 非生产环境,右上角显示tip,并可以打开console
|
|
|
|
+1. Electron加固(替换网络层,用C来发网络请求,探索可行性)
|
|
|
|
+1. 先得到抓拍的png照片,再通过canvas得到jpeg格式的照片。[js image manipulation](https://github.com/oliver-moran/jimp)
|
|
|
|
+
|
|
|
|
|
|
## 待整理
|
|
## 待整理
|
|
|
|
|