JunweiNotAvailable/prompt-injection-playground
GitHub: JunweiNotAvailable/prompt-injection-playground
一个基于Next.js构建的提示注入攻击沙盒平台,帮助开发者在模拟的虚拟电商环境中安全地实验和理解LLM提示注入攻击。
Stars: 0 | Forks: 0
# 提示注入沙盒 (Prompt Injection Playground)
一個教育性工具,讓開發者能夠安全地實驗和理解提示注入攻擊。
## 功能特色
- **直接注入模式**:透過聊天介面直接測試提示注入
- **間接注入模式**:透過外部數據源(電子郵件、資料庫記錄)測試間接注入
- **自動攻擊分析**:AI 自動分析攻擊嚴重程度和成功與否
- **虛擬電商環境**:模擬真實場景的客戶和訂單數據
- **攻擊記錄追蹤**:完整記錄所有測試歷史
## 技術棧
- **全端框架**:Next.js 14+ (App Router) with TypeScript
- **前端**:React 18+, Tailwind CSS
- **資料庫**:Vercel Postgres (PostgreSQL)
- **AI 模型**:OpenAI API (gpt-4o-mini)
## 快速開始
### 1. 安裝依賴
npm install
### 2. 設置環境變數
建立 `.env.local` 檔案並設置以下變數:
# Vercel Postgres
POSTGRES_URL="postgres://..."
POSTGRES_PRISMA_URL="postgres://..."
POSTGRES_URL_NON_POOLING="postgres://..."
POSTGRES_USER="..."
POSTGRES_HOST="..."
POSTGRES_PASSWORD="..."
POSTGRES_DATABASE="..."
# OpenAI API
OPENAI_API_KEY="sk-..."
### 3. 初始化資料庫
首次使用前,需要初始化資料庫並生成虛擬數據:
# 啟動開發伺服器
npm run dev
# 在瀏覽器中訪問以下 URL 來初始化資料庫
http://localhost:3000/api/seed
或者使用 curl:
curl http://localhost:3000/api/seed
### 4. 啟動應用
npm run dev
訪問 [http://localhost:3000](http://localhost:3000) 開始使用。
## 使用指南
### 沙盒 (Playground)
1. **選擇注入模式**:
- **直接注入**:在聊天介面中直接輸入惡意提示
- **間接注入**:編輯電子郵件或資料庫記錄內容,插入惡意指令
2. **開始測試**:
- 直接注入:輸入訊息並發送
- 間接注入:編輯數據源內容後點擊「觸發 AI 助理處理」
3. **查看結果**:
- 右側面板顯示工具調用記錄
- 自動分析面板顯示攻擊分析結果
### 儀表板 (Dashboard)
- **虛擬業務數據**:查看模擬的客戶和訂單資料
- **攻擊記錄**:查看所有測試歷史和分析結果
## 資料庫架構
### 虛擬業務數據
- `customers` - 客戶資料
- `orders` - 訂單資料
### 工具自身數據
- `sessions` - 測試會話
- `messages` - 對話訊息
- `attack_records` - 攻擊記錄
## 開發
### 建構生產版本
npm run build
npm start
### 程式碼檢查
npm run lint
## 部署
推薦使用 Vercel 部署:
1. 將專案推送到 GitHub
2. 在 Vercel 中匯入專案
3. 設置環境變數
4. 部署完成後訪問 `/api/seed` 初始化資料庫
## 注意事項
- 本工具僅供教育目的使用
- 請勿在生產環境中使用
- 確保 OpenAI API 金鑰安全
- 定期檢查 API 使用量
## 授權
MIT License
标签:AI安全, Chat Copilot, Cybersecurity, DLL 劫持, DNS枚举, GPT-4, OpenAI, OSV, Petitpotam, PostgreSQL, React, Syscalls, TypeScript, Vercel, Web安全, 全端开发, 内存规避, 大语言模型, 安全插件, 安全沙盒, 安全测试, 提示注入, 攻击性安全, 攻击模拟, 教育性工具, 测试用例, 漏洞分析, 网络安全工具, 自动化攻击, 蓝队分析, 路径探测, 集群管理, 驱动签名利用