概要内容
- 常用防调试方法
- 引入条件编译打包
常用防调试方法
- 屏蔽:相关按键 + 鼠标右键
- 检测控制台是否打开
- 检测DevTools 是否打开
- 工具类:
1 | //************************************************************************* |
- 使用方法:main.js 引入和挂在即可
1
2
3
4/* IFTRUE_isRelease */
import antiDebugUtils from "./utls/AntiDebugUtil";
antiDebugUtils.hook();
/*FITRUE_isRelease */
引入条件编译打包:
项目随着需求不断迭代开发,无法避免的会出现各种环境、各种渠道等,然后针对其打出不同的包,所以就需要我们去了解下条件编译,针对不同条件把不符合条件的代码(JS\CSS\HTML)排除,条件编译插件很多,推荐js-conditional-compile-loader插件,我针对JS\CSS\HTML 分别进行条件编译测试都通过,简单好用
- 配置条件变量:修改webpack.base.conf.js中的配置(提示:如果使用不同版本Webpack,可能没有webpack.base.conf.js,那么找对应的webpack配置文件即可)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24// 根据自己的喜好在options中添加条件变量
const conditionalCompiler = {
loader: 'js-conditional-compile-loader',
options: {
isBeta: (process.env.ENV_CONFIG !== "prod") ? true : false,
isRelease: (process.env.ENV_CONFIG === "prod") ? true : false
}
}
// 找到module.exports中的module.rules, 修改成如下样子
{
test: /\.vue$/,
use: ['vue-loader', conditionalCompiler],
},
{
test: /\.js$/,
include: [resolve('src'), resolve('test')],
use: [
//step-2
'babel-loader?cacheDirectory',
//step-1
conditionalCompiler,
],
}, 使用方法:
/ IFTRUE_条件变量 / you need contorl coding.. /FITRUE_条件变量 /
示例:
1 | /* IFTRUE_isRelease */ |
- 更多:
其实上面的一种方法就够我用了,你如需了解更多用法请查看API 传输门
最后:
现在我们知道怎么防调试了,那接下来怎么做到更安全,那就是把代码混淆掉。下一篇:Web代码混淆
参考文献:
更多相关:
- [conditional-compile-loader]https://developer.aliyun.com/mirror/npm/package/conditional-compile-loader
- webpack Vue条件编译
- 常见 Web 安全攻防总结
- 攻破Web防调试方法
以上: 如发现有问题,欢迎留言指出,我及时更正