逆向还原sourcemap源码

目录

1.使用npm安装reverse-souecemap

1.1 安装npm

访问官网,下载安装包,然后一路next即可
https://nodejs.org/en
安装包会自动添加环境变量

确认是否安装成功

npm -v

在这里插入图片描述

1.2 npm配置优化

建立两个文件夹node_cache和node_global
在这里插入图片描述

1.2.1 全局模块存放路径和cache路径

运行命令

npm config set prefix "D:\nodejs\node_global"
npm config set cache "D:\nodejs\node_cache"

在这里插入图片描述

1.2.2 更改镜像源
npm config set registry=http://registry.npm.taobao.org 

查看刚才的配置是否生效

npm config list

在这里插入图片描述

1.2.3 升级更新npm,并添加环境变量
# npm install 安装或更新模块 -g代表全局安装,即安装到D:\nodejs\node_global目录下
npm install npm -g

安装报错
在这里插入图片描述
根据提示信息,以管理员模式打开cmd,再次执行更新命令,成功安装

在这里插入图片描述
此时,再次查看global中已经安装了那些模块,可以发现我们安装的npm

npm list -global

在这里插入图片描述

由于默认的模块路径为:D:\nodejs\node_modules 目录
我们更改了全局目录为:D:\nodejs\node_global\node_modules 目录, 如果直接运行npm install等命令会报错的。
我们需要增加一个环境变量NODE_PATH, 内容是:D:\nodejs\node_global\node_modules

在这里插入图片描述

1.3 安装 reverse-sourcemap

npm install reverse-sourcemap -g

在这里插入图片描述
检查是否安装成功

reverse-sourcemap -h

在这里插入图片描述
在这里插入图片描述
添加环境变量
D:\nodejs\node_global
在这里插入图片描述
再次执行,发现可成功查看帮助信息
在这里插入图片描述

2. 使用reverse-sourcemap逆向获取源码

reverse-sourcemap --output-dir 自定义输出目录 xxx.js.map

在这里插入图片描述

在这里插入图片描述

3. 漏洞修复

为避免这种漏洞,应该在生产环境中禁用 SourceMap 功能或限制 SourceMap 文件的访问权限。例如,在 Webpack 配置中禁用 SourceMap 功能:

// webpack.config.js
module.exports = {
  // ...
  devtool: false,
};

或者,在 Web 服务器配置中限制 SourceMap 文件的访问权限:

nginx

# nginx configuration
location /static/ {
  # 只允许本地访问
  allow 127.0.0.1;
  deny all;
  alias '/path/to/source-maps/';
}