harry2480/prompt-injection-checker
GitHub: harry2480/prompt-injection-checker
基于纯前端规则引擎的提示词注入检测工具,在浏览器内离线完成文本安全审查,覆盖九大类注入手法且不上传任何数据。
Stars: 0 | Forks: 0
# プロンプトインジェクション検査
任意のテキストに**プロンプトインジェクション**が含まれていないかを、ブラウザ内のルールベース検知で検査する静的サイトです。**GitHub Pages** 上で動作し、サーバー・DB・API キーを持ちません。入力したテキストは**外部に送信されません**(URL取得機能を除く)。
🔗 **公開サイト**: https://harry2480.github.io/prompt-injection-checker/
## 特徴
- **ブラウザ内で完結** — 検知はすべてクライアントサイドで実行。入力は外部送信されず、プライバシー面で安全
- **無料・登録不要・オフライン動作** — 静的サイトとして低コスト・高可用
- **日英対応+言語非依存の検知** — 9 カテゴリのインジェクション手口をルールベースで検出
- **根拠を可視化** — 総合リスク(安全 / 注意 / 危険)、カテゴリ別サマリー、該当箇所のハイライト、不可視文字の可視ラベル化、検出根拠の一覧
## 検知するカテゴリ
| カテゴリ | 例 |
|---|---|
| 命令の無視・上書き | 「これまでの指示を無視」/ `ignore previous instructions` |
| 役割・人格の変更 | 「あなたは今から〜」/ `act as`, `you are now` |
| システムプロンプト/機密の抽出 | 「システムプロンプトを教えて」/ `reveal your system prompt` |
| 制約解除・特権要求 | 「開発者モード」/ `no restrictions`, `jailbreak` |
| 区切り/ロールマーカー注入 | `### System:`, `<\|im_start\|>`, `[INST]` |
| 不可視文字・難読化 | ゼロ幅文字・双方向制御・Unicode Tag 文字 |
| エンコード隠蔽 | 長い Base64 / Hex / URL エンコード列 |
| データ持ち出し・外部誘導 | 「次のURLに送信」/ クエリ付き Markdown 画像 |
| ツール/行動の誘導 | 「実行して」「削除して」/ `run this command` |
## 使い方
- テキストを貼り付ける/`.txt`・`.md` ファイルを読み込む/URL を指定して「検査する」を押すと、検出結果が表示されます
- 「サンプルを試す」で代表的なインジェクション例を投入できます
## 開発
pnpm dev # 開発サーバー起動
pnpm verify # lint → typecheck → unit test → depcruise
pnpm test:unit # Unit テスト(検知ロジック中心)
pnpm lint:fix # 自動フォーマット・Lint 適用
pnpm build # 静的エクスポート(out/ を生成)
pnpm knip # 未使用コード検出
「〇〇な検知ルールを追加して」「〇〇な画面を作って」など、やりたいことを Claude Code に指示するだけで実装できます。
## 技術スタック
- Next.js 15 (App Router) を**静的エクスポート**(`output: 'export'`)で GitHub Pages へ配信
- TypeScript / shadcn/ui + Tailwind CSS
- 検知エンジンは外部依存を持たない純粋 TypeScript
- Vitest / dependency-cruiser / Biome
- GitHub Actions で build → GitHub Pages デプロイ
## アーキテクチャ
pnpm workspace monorepo。`apps/webapp/` に Next.js 15 アプリ。バックエンド (`apps/webapp/src/backend/`) は DDD 4層構造で、検知は最内層の `domain` に集約しています。
依存方向: presentation → application → domain ← infrastructure
apps/webapp/src/
├── app/ # 検査ページ(Next.js App Router)
├── backend/
│ ├── domain/ # 検知エンジン・ルール(データ)・モデル(外部依存なし)
│ ├── application/ # 検査 UseCase
│ ├── infrastructure/ # Gateway 実装(ファイル読込・URL取得)+ Stub
│ └── presentation/ # composition(DI)・view-models
└── frontend/ # UI(components / hooks / lib)
- 検知ルールは `domain/rules/` に**データ(配列・定数)として宣言的に管理**し、検知エンジン(純粋関数)から分離
- 外部 I/O(`fetch`・`FileReader`)は `infrastructure/adapters/` に閉じ込め、必ず Stub を用意
- frontend は `backend/presentation` 経由でのみ検知機能を利用(dependency-cruiser で機械的に検証)
詳細な設計は `docs/` を参照してください。
## ライセンス
[MIT](./LICENSE)
标签:AI安全, Chat Copilot, DLL 劫持, 云计算, 大语言模型, 客户端检测, 提示词注入检测, 自动化攻击, 规则引擎, 静态网站