YassineBlue/postmessage-lab
GitHub: YassineBlue/postmessage-lab
这是一个演示浏览器跨窗口通信的实验项目,通过postMessage()实现父子页面间的安全消息交互与验证。
Stars: 0 | Forks: 0
# postMessage 实验
这是一个浏览器实验,演示父页面与 iframe 之间的 `window.postMessage()` 通信。
旨在以清晰直观的方式展示如何使用 JavaScript 实现跨窗口通信
## 在线演示
https://yassineblue.github.io/postmessage-lab/
## 功能特性
- 从父页面向子 iframe 发送消息
- 子 iframe 自动发送确认回复
- 子 iframe 可向父页面手动发送回复
- 使用 `event.origin` 和 `window.location.origin` 实现安全的跨域通信
- 实时消息日志记录
- 基于原生浏览器 API 构建(无外部框架)
## 工作原理
父页面通过 `window.postMessage()` 向 iframe 发送消息。
iframe 使用 `window.addEventListener("message")` 监听消息,验证来源,然后通过相同 API 发送回复。
## 安全性
所有消息均通过 `event.origin` 和 `window.location.origin` 进行验证,确保跨域通信的安全性。
## 文件结构
- `index.html` → 父页面
- `child.html` → 子 iframe 窗口
## 运行项目
本项目可通过 XAMPP 等服务器本地运行,也可直接通过上述 GitHub Pages 在线演示访问。
### 使用 XAMPP 运行
1. 安装并打开 XAMPP
2. 启动 **Apache** 服务器
3. 将项目文件夹移动到:
```
xampp/htdocs/postmessage-lab/
```
4. 在浏览器中打开:
```
http://127.0.0.1/postmessage-lab/
```
标签:CMS安全, GitHub Pages, HTML, iframe, JavaScript, postMessage, Syscall, Web API, Web开发, XAMPP, 原点验证, 多模态安全, 安全通信, 实时日志, 实验室演示, 教育项目, 数据可视化, 无框架, 浏览器API, 消息传递, 自定义脚本, 跨域通信, 跨窗口通信