开发工具的安全性保障

[toc]

项目安全

一、开发工具

附:《开发工具.md

开发工具安全性处理

1、(基础)入口隐蔽

2、(进阶)设置密码:build号(2011021000 即20年 11.02 10:00),并允许后台强制修改密码

3、(保障)升级时候,缓存的显示开发工具按钮失效:缓存的key,增加版本号

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// 悬浮按钮 DevToolManager
String _app_drag_floating_button_key = "_app_drag_floating_button_should_show_${version}" // 当前版本悬浮按钮显示态
bool showFloatingDevButton = await SharedPreferences.getInstance().getBool(_app_drag_floating_button_key);


// 开发工具入口按钮 DevEntranceView
buildUI() {
bool _findEnterUI = false; // 页面全局变量,是否发现了入口

bool needAuth = !productEnv;
if (!needAuth) {
return 直接显示入口,且入口为"定制开发工具按钮",点击可直接进入开发工具页面
}

if (_findEnterUI) {
return "验证码输入框+进入页面的按钮"
}

// 提供一个隐藏区域,供用户长按来显示入口
return GestureDetector(onLongPress:() {
_findEnterUI = true;
});
}

getPd() async {
GlobalOtherConfig? otherConfigModel = GlobalConfig.otherConfig();
if (otherConfigModel != null && otherConfigModel.toolPasd != null && otherConfigModel.toolPasd!.isNotEmpty) {
_password = otherConfigModel.toolPasd;
} else {
PackageInfo packageInfo = await PackageInfo.fromPlatform();
_password = packageInfo.buildNumber;
}
}

End