前端js代码多文件混淆

前端js代码混淆


对于前端开发中的代码安全性一直是一个不可忽视的问题,前段时间公司就要求我们把我们小程序端的代码再进行混淆。看了很多网址,说的不是很明白,因此也就出了这篇文章和大家分享。

1:首先分享一下一个插件链接:https://github.com/javascript-obfuscator/javascript-obfuscator。
我用的就是这个javascript-obfuscator插件,这个插件使用教程是对单个文件进行混淆加密。

2:相对的插件工具链接:https://www.obfuscator.io/

混淆前:在这里插入图片描述
混淆后:在这里插入图片描述
是不是很好用,这个工具就是基于javascript-obfuscator进行混淆的。但是我们开发过程中常常并不是说把一个js进行混淆就ok了,需要把全量包的js进行混淆。

3:我使用uniapp开发的小程序,需要将编译过后的小程序代码再进行混淆,代码里包含多个js,不同的文件夹下,所以我就在想,用最简单的遍历文件的方式进行混淆代码。

4:首先需要在本机全局安装 npm install javascript-obfuscator -g
直接上代码:进入文件夹下控制台,输入 node obfuscator.js即可进行混淆代码

index.json

{
	"compact": false,
	"controlFlowFlattening": true,
	"controlFlowFlatteningThreshold": 1,
	"numbersToExpressions": true,
	"simplify": true,
	"shuffleStringArray": true,
	"splitStrings": true,
	"stringArrayThreshold": 1
}

index.js

// 检索的相对文件夹
const relativePath = '../unpackage/dist/dev/mp-weixin'
// 不需要混淆的js或文件夹
const exitFile = ['node_modules', 'index.js', 'app.js', 'common']


var fs = require('fs')
var process = require('child_process');
var readDir = fs.readdirSync(relativePath);


// 需要存在的js
const czFile = []

var filePath = relativePath
var arr = new Array()
readFile(readDir, filePath)
// 读取相对路径下的所有文件
function readFile(readDir, filePath) {
	if (readDir.length > 0) {
		for (var i = 0; i < readDir.length; i++) {
			scannerFile(readDir[i], filePath)
		}
	}
}
// 扫描文件进行检索出js文件进行混淆
function scannerFile(file, filePath) {
	console.log("file-----" + file);
	var readdirpath = ""
	if (filePath == './') {
		readdirpath = filePath + file
	} else {
		readdirpath = filePath + "/" + file
	}
	if (exitFile.indexOf(file) < 0) {
		console.log('-->Start entering FS');
		fs.stat(readdirpath, (err, data) => {
			if (err) {
				console.log(err);
			} else {
				if (data.isDirectory()) {
					console.log('-->isDirectory:' + file);
					var readChildDir = fs.readdirSync(readdirpath);
					console.log(readChildDir);
					readFile(readChildDir, readdirpath)
				} else {
					console.log('-->isNotDirectory:' + file);
					if (file.indexOf('.js') >= 0 && file.indexOf('.json') < 0) {
						// 开始混淆代码
						console.log('-->Start confusing code:' + file);
						var cmd = ' javascript-obfuscator ' + readdirpath + ' --config index.json --output ' + readdirpath;
						process.exec(cmd, function(error, stdout, stderr) {
							console.log("error:" + error);
							console.log("stdout:" + stdout);
							console.log("stderr:" + stderr);
						});
						arr.push(readdirpath)
					} else {
						console.log('Non-folder - Non-js code :' + file);
					}
				}
			}
		})

	} else {
		console.log('-->skip------------');
	}
}

使用方式:
在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前端页面定位前端代码有几种常见的方法: 1. 使用浏览器的开发者工具:现代浏览器都内置了开发者工具,可以通过按下 F12 键或右键点击页面并选择“检查”或“查看元素”来打开开发者工具。在开发者工具中,可以查看页面的 HTML 结构、CSS 样式和 JavaScript 代码,以及在控制台中执行代码。通过检查元素、查看源代码、修改样式或执行脚本,可以定位和调试前端代码。 2. 使用浏览器的源代码查看器:在浏览器中,可以通过右键点击页面并选择“查看页面源代码”来查看页面的源代码。源代码前端页面的原始 HTML、CSS 和 JavaScript 代码,可以通过搜索关键词或浏览代码来定位前端代码。 3. 使用代码编辑器的搜索功能:如果你有前端代码的源文件,可以使用代码编辑器的搜索功能来查找特定的代码片段。大多数代码编辑器都支持全局搜索和替换功能,可以根据关键词搜索代码文件,并跳转到匹配的代码位置。 4. 使用浏览器的调试工具:开发者工具中的调试功能可以帮助你定位和调试前端代码。可以在开发者工具中打断点,以停止代码执行并检查变量的值、调用栈等信息。可以单步执行代码,逐行查看代码的执行过程,以及在控制台中查看和修改变量的值。 需要注意的是,前端代码可能会被压缩、合并或混淆,使其难以阅读和定位。在这种情况下,可以使用代码美化工具或反混淆工具来还原代码的可读性,以便更好地定位和调试前端代码

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值