zamaniprince/incident-response-system
GitHub: zamaniprince/incident-response-system
一个基于 PHP 与 MySQL 的事件响应管理系统,用于规范安全事件的报告、跟踪与处置。
Stars: 0 | Forks: 0
# 🛡️ 事件响应系统
一个使用 PHP、MySQL 和现代 CSS 构建的综合性基于 Web 的事件响应和管理系统。该系统允许组织高效地报告、跟踪和管理安全事件,并具备基于角色的访问控制。



## 📋 目录
- [功能特性](#features)
- [系统架构](#system-architecture)
- [安装指南](#installation)
- [配置说明](#configuration)
- [使用说明](#usage)
- [数据库结构](#database-schema)
- [安全特性](#security-features)
- [截图展示](#screenshots)
- [贡献指南](#contributing)
- [许可协议](#license)
## ✨ 功能特性
### 公共功能
- 📝 **匿名事件报告** - 公共用户无需认证即可报告安全事件
- 🔍 **事件跟踪** - 使用唯一跟踪 ID 跟踪事件状态
- 🎨 **现代化界面** - 采用深蓝色主题的响应式设计
### 用户功能(需认证)
- 👤 **用户仪表盘** - 显示用户所有事件报告的个性化仪表盘
- 📊 **状态监控** - 实时更新事件调查进度
- 📈 **时间线视图** - 展示事件进展的可视化时间线
- 🔔 **详细报告** - 查看完整事件详情、指派人员和解决方案
### 管理员/经理功能
- 👥 **用户管理** - 对用户账户的完整 CRUD 操作
- 🎭 **角色管理** - 分配角色(管理员、经理、用户)
- 📋 **事件管理** - 查看、更新并解决所有事件
- 📊 **分析仪表盘** - 全面的统计数据和洞察
- 🔄 **状态更新** - 更改事件状态(开启 → 进行中 → 已解决)
- 👨💼 **指派系统** - 将事件指派给特定团队成员
## 🏗️ 系统架构
### 技术栈
- **前端:** HTML5, CSS3, JavaScript
- **后端:** PHP 8.0+
- **数据库:** MySQL 5.7+
- **服务器:** Apache (WAMP/XAMPP/LAMP)
### 项目结构
```
incident_response_system/
│
├── config.php # Database configuration
├── index.php # Public landing page
├── styles.css # Global stylesheet
│
├── Public Pages/
│ ├── public_report.php # Public incident reporting
│ ├── track_incident.php # Public incident tracking
│ ├── login.php # User authentication
│ └── register.php # User registration
│
├── User Pages/
│ ├── user_dashboard.php # User's personal dashboard
│ ├── user_incident_detail.php # Detailed incident view for users
│ └── user_profile.php # User profile management
│
├── Admin/Manager Pages/
│ ├── admin_dashboard.php # Admin overview dashboard
│ ├── view_incidents.php # Manage all incidents
│ ├── view_incident_detail.php # Full incident details
│ ├── update_incident.php # Update incident status
│ ├── manage_users.php # User management
│ └── dashboard.php # Analytics dashboard
│
├── Auth/
│ └── logout.php # Session cleanup
│
└── database.sql # Database setup script
```
## 🚀 安装
### 先决条件
- 已安装 WAMP/XAMPP/LAMP 服务器
- PHP 8.0 或更高版本
- MySQL 5.7 或更高版本
- Apache 网络服务器
### 分步安装
1. **克隆仓库**
git clone https://github.com/zamaniprince/incident-response-system.git
2. **移动到 Web 目录**
# 对于 WAMP
mv incident-response-system C:/wamp64/www/
# 对于 XAMPP
mv incident-response-system C:/xampp/htdocs/
# 对于 Linux (LAMP)
sudo mv incident-response-system /var/www/html/
3. **创建数据库**
- 打开 phpMyAdmin (http://localhost/phpmyadmin)
- 创建名为 `incident_response_db` 的新数据库
- 导入 `database.sql` 文件
4. **配置数据库连接**
- 将 `config.example.php` 复制为 `config.php`(或手动创建)
- 更新数据库凭据:
define('DB_HOST', 'localhost');
define('DB_USER', 'root');
define('DB_PASS', '');
define('DB_NAME', 'incident_response_db');
5. **设置权限**(仅限 Linux/Mac)
chmod 755 incident-response-system
chmod 644 incident-response-system/*.php
6. **访问应用程序**
- 打开浏览器并导航至:`http://localhost/incident-response-system/`
## ⚙️ 配置
### 数据库配置
编辑 `config.php` 以匹配您的环境:
```
connect_error) {
die("Connection failed: " . $conn->connect_error);
}
return $conn;
}
if (session_status() === PHP_SESSION_NONE) {
session_start();
}
?>
```
## 📖 使用说明
### 对于公共用户
1. **报告事件**
- 访问首页
- 点击“报告事件”
- 填写事件详情
- 提交并保存您的跟踪 ID
2. **跟踪事件**
- 点击“跟踪您的报告”
- 输入您的跟踪 ID
- 查看事件状态和进度
### 对于注册用户
1. **注册账户**
- 从登录页面点击“注册”
- 填写注册信息
- 提交并登录
2. **查看您的事件**
- 登录账户
- 访问个人仪表盘
- 查看所有报告的事件
- 检查状态更新和解决方案
### 对于管理员/经理
1. **管理事件**
- 使用管理员/经理凭据登录
- 查看系统中的所有事件
- 更新事件状态
- 将事件指派给团队成员
2. **管理用户**
- 访问“管理用户”页面
- 查看所有注册用户
- 更改用户角色
- 激活/停用账户
- 删除用户
3. **查看分析**
- 访问分析仪表盘
- 查看事件统计
- 监控严重程度分布
- 跟踪类别趋势
## 🗄️ 数据库结构
### 用户表
```
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50) UNIQUE NOT NULL,
email VARCHAR(150) UNIQUE NOT NULL,
password VARCHAR(255) NOT NULL,
full_name VARCHAR(100) NOT NULL,
role ENUM('Admin', 'Manager', 'User') DEFAULT 'User',
phone VARCHAR(20),
department VARCHAR(100),
status ENUM('Active', 'Inactive') DEFAULT 'Active',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
last_login TIMESTAMP NULL
);
```
### 事件表
```
CREATE TABLE incidents (
id INT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(255) NOT NULL,
description TEXT NOT NULL,
severity ENUM('Low', 'Medium', 'High', 'Critical') NOT NULL,
category VARCHAR(100) NOT NULL,
status ENUM('Open', 'In Progress', 'Resolved') DEFAULT 'Open',
reporter_name VARCHAR(100) NOT NULL,
reporter_email VARCHAR(150) NOT NULL,
assigned_to INT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
resolved_at TIMESTAMP NULL,
FOREIGN KEY (assigned_to) REFERENCES users(id) ON DELETE SET NULL
);
```
## 🔒 安全特性
- ✅ **密码哈希** - 使用 bcrypt 进行密码哈希
- ✅ **SQL 注入防护** - 所有查询使用预处理语句
- ✅ **会话管理** - 安全的会话处理
- ✅ **基于角色的访问控制** - 细粒度的权限系统
- ✅ **XSS 防护** - 对所有用户输入进行 HTML 实体编码
- ✅ **认证检查** - 页面级认证防护
- ✅ **密码强度验证** - 最低 8 个字符要求
## 📱 响应式设计
该系统完全响应式,可在以下设备上无缝工作:
- 💻 桌面电脑
- 📱 手机
- 📱 平板
- 🖥️ 大屏显示器
## 🎨 设计系统
### 配色方案
```
--primary-blue: #1a2332 /* Main background */
--secondary-blue: #243447 /* Cards and containers */
--accent-blue: #2c4261 /* Borders and accents */
--light-blue: #3a5270 /* Hover states */
--highlight-blue: #4a6fa5 /* Primary buttons */
--success: #4ade80 /* Success states */
--warning: #fbbf24 /* Warning states */
--danger: #ef4444 /* Error/critical states */
```
## 🤝 贡献
欢迎贡献!请遵循以下步骤:
1. 叉出仓库
2. 创建功能分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 发起拉取请求
## 📝 许可
本项目采用 MIT 许可协议 - 详见 [LICENSE](LICENSE) 文件。
## 👥 作者
- Zamani Prince - ** - (https://github.com/zamaniprince)
## 🙏 感谢
- 为数据库管理系统课程作业设计
- 采用现代 Web 开发最佳实践构建
- 灵感来源于专业的 incident response 系统
## 🔮 后续增强功能
- [ ] 事件更新的电子邮件通知
- [ ] 文件附件支持
- [ ] 高级搜索和过滤
- [ ] 导出报告为 PDF
- [ ] 双因素认证
- [ ] 第三方 API 集成
- [ ] 实时通知
- [ ] 事件升级流程
**⭐ 如果您发现此项目有用,请给它一颗星!**
标签:ffuf, MySQL5.7, OpenVAS, PHP, PHP8, RBAC, 事件响应系统, 事件跟踪, 代码示例, 仪表盘, 匿名举报, 响应式设计, 安全事件管理, 安全管理, 安全运营, 开源MIT, 扫描框架, 报告系统, 数据分析, 数据可视化, 时间线视图, 暗蓝色主题, 状态监控, 现代UI, 用户管理, 管理员面板, 网络安全, 角色权限管理, 追踪ID, 隐私保护