Skip to content

Commit 81941da

Browse files
committed
feat: 为请求参数加密靶场增加README
1 parent 0b49a38 commit 81941da

File tree

1 file changed

+47
-1
lines changed

1 file changed

+47
-1
lines changed

goat/script-src-encrypt/README.md

+47-1
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,62 @@
1+
# JSONP 参数加密示例项目
12

3+
这是一个简单的示例项目,展示了如何在客户端使用 JSONP 请求时对参数进行加密,并在服务器端解密。项目使用了 `CryptoJS` 库来实现 AES 加密和解密功能,并通过 `Express` 框架搭建了一个简单的服务器来处理 JSONP 请求。
24

5+
## 项目结构
36

7+
- **client.html**: 客户端页面,包含一个输入框和按钮,用户输入数据后,数据会被加密并通过 JSONP 请求发送到服务器。
8+
- **server.js**: 服务器端代码,接收加密的 JSONP 请求,解密数据并返回响应。
9+
- **package.json**: 项目的依赖配置文件,包含项目所需的依赖项。
410

11+
## 如何运行
512

6-
这是一个script请求中携带加密参数的例子。
13+
1. **克隆项目**:
14+
```bash
15+
git clone <repository-url>
16+
cd <project-directory>
17+
```
718

19+
2. **安装依赖**:
20+
```bash
21+
npm install
22+
```
823

24+
3. **启动服务器**:
25+
```bash
26+
node server.js
27+
```
928

29+
4. **打开客户端页面**:
30+
在浏览器中打开 `client.html` 文件。你可以通过文件路径直接打开,或者使用一个本地服务器(如 `http-server`)来提供服务。
1031

32+
5. **使用示例**:
33+
- 在输入框中输入数据(或使用默认生成的随机数据)。
34+
- 点击“发送 JSONP 请求”按钮,数据会被加密并发送到服务器。
35+
- 服务器解密数据后,返回响应并在页面上显示结果。
1136

37+
## 代码说明
1238

39+
### 客户端 (`client.html`)
1340

41+
- **加密函数**: 使用 `CryptoJS.AES.encrypt` 对输入数据进行加密。
42+
- **JSONP 请求**: 创建一个 `<script>` 标签来发送 JSONP 请求,请求完成后移除该标签。
43+
- **回调函数**: 处理服务器返回的响应数据,并将其显示在页面上。
1444

45+
### 服务器 (`server.js`)
1546

47+
- **解密函数**: 使用 `CryptoJS.AES.decrypt` 对接收到的加密数据进行解密。
48+
- **JSONP 接口**: 接收加密的 JSONP 请求,解密数据后返回响应。
1649

50+
## 依赖项
51+
52+
- **CryptoJS**: 用于加密和解密数据。
53+
- **Express**: 用于搭建服务器和处理 HTTP 请求。
54+
55+
## 注意事项
56+
57+
- **密钥管理**: 在实际项目中,密钥应妥善管理,避免硬编码在代码中。可以使用环境变量或其他安全方式来存储密钥。
58+
- **安全性**: 虽然本示例展示了如何加密数据,但 JSONP 本身存在一些安全风险(如跨站脚本攻击),在实际应用中应谨慎使用。
59+
60+
## 许可证
61+
62+
本项目基于 MIT 许可证开源。

0 commit comments

Comments
 (0)