当前位置: 首页 > news >正文

使用Web控制端和轻量级客户端构建的开放Web应用防火墙(OpenWAF)

目录

  • 1. 简介
  • 2. 项目结构
  • 3. Web控制端
    • 3.1. 功能概述
    • 3.2. 审计(攻击)日志查看
    • 3.3. 多个WAF的集中监控和操作
    • 3.4. 使用socket进行封装
    • 3.5. 日志的高效存储和检索(Redis)
  • 4. 轻量级客户端
    • 4.1. 功能概述
    • 4.2. 对Web程序的防护
    • 4.3. 网络异常后的自动重连
    • 4.4. 执行服务端下发的任务
  • 5. 技术实现
    • 5.1. Web控制端的技术选型和框架
    • 5.2. 轻量级客户端的技术选型和框架
    • 5.3. socket封装的具体实现
    • 5.4. Redis在日志存储中的应用
  • 6. 项目亮点
  • 7. 总结
  • 8. 示例
    • 8.1. 主页面
    • 8.2. 查看配置文件
    • 8.3. 运行情况
    • 8.4. 配置规则
    • 8.5. 配置返回头
    • 8.6. 日志测试

1. 简介

随着Web应用的发展,安全问题日益突出。为了有效防护Web应用,Web应用防火墙(WAF)应运而生。本项目旨在构建一个开放的Web应用防火墙(OpenWAF),通过Web控制端和轻量级客户端的结合,实现对Web应用的全面防护和管理。

2. 项目结构

本项目由两个主要部分组成:

  • Web控制端:用于集中管理和监控多个WAF实例,并提供各种操作功能。
  • 轻量级客户端:部署在需要保护的计算机上,提供Web防护功能,并执行来自控制端的指令。

3. Web控制端

3.1. 功能概述

Web控制端是整个系统的核心,它负责集中管理和监控所有的WAF实例,并提供用户友好的操作界面。

3.2. 审计(攻击)日志查看

用户可以通过Web控制端查看所有WAF实例的审计日志,了解所有的攻击行为和防护情况。

3.3. 多个WAF的集中监控和操作

Web控制端提供了丰富的操作功能,包括:

  • 查看配置文件:用户可以查看每个WAF实例的配置文件。
  • 心跳监测:实时监控每个WAF实例的状态,确保其正常运行。
  • 添加备注和删除:用户可以为每个WAF实例添加备注或删除不需要的实例。
  • 主动下线:在必要时,用户可以主动将某个WAF实例下线。
  • 分发自定义规则:用户可以分发自定义的安全规则到各个WAF实例,并启动这些规则。
  • 启动和停止WAF:用户可以远程启动或停止每个WAF实例。
  • 自定义WAF返回头内容:用户可以定制WAF返回的HTTP头信息,以满足不同的需求。

3.4. 使用socket进行封装

所有操作均通过socket进行封装,确保数据传输的高效和安全。

3.5. 日志的高效存储和检索(Redis)

系统使用Redis进行日志的存储和检索,极大地提高了性能和响应速度。

4. 轻量级客户端

4.1. 功能概述

轻量级客户端部署在需要保护的计算机上,提供Web防护功能,并执行来自控制端的指令。

4.2. 对Web程序的防护

客户端能够实时监控和防护Web程序,阻止各种攻击行为。

4.3. 网络异常后的自动重连

当网络异常时,客户端能够自动重试连接,确保防护功能的持续有效。

4.4. 执行服务端下发的任务

客户端能够执行来自控制端下发的各种任务,包括更新规则、重启服务等。

5. 技术实现

5.1. Web控制端的技术选型和框架

Web控制端采用现代Web技术构建,包括前端的JavaScript和后端的Golang,确保系统的高性能和易维护性。

5.2. 轻量级客户端的技术选型和框架

轻量级客户端采用Golang构建,保证了其轻量级和高效性。

5.3. socket封装的具体实现

通过Golang的net包实现socket封装,确保数据传输的安全性和高效性。

5.4. Redis在日志存储中的应用

利用Redis的高性能和高并发性,实现日志的快速存储和检索,满足大规模数据处理的需求。

6. 项目亮点

  • 高效的日志存储和检索机制:使用Redis实现高效的日志存储和检索,显著提高系统性能。
  • 灵活的WAF操作和配置管理:提供丰富的操作功能,方便用户管理和配置WAF实例。
  • 轻量级客户端的可靠性和自动化:客户端具备自动重连和执行任务的能力,确保防护功能的稳定性和持续性。

7. 总结

本项目通过Web控制端和轻量级客户端的结合,实现了对Web应用的全面防护和管理。系统采用现代技术,具备高效、灵活、可靠的特点,为Web应用的安全提供了有力保障。未来,将继续优化系统性能,增加更多功能,提升用户体验。

8. 示例

8.1. 主页面

在这里插入图片描述

8.2. 查看配置文件

在这里插入图片描述

8.3. 运行情况

在这里插入图片描述
在这里插入图片描述

8.4. 配置规则

在这里插入图片描述

8.5. 配置返回头

在这里插入图片描述

8.6. 日志测试

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

相关文章:

使用Web控制端和轻量级客户端构建的开放Web应用防火墙(OpenWAF)

目录 1. 简介2. 项目结构3. Web控制端3.1. 功能概述3.2. 审计(攻击)日志查看3.3. 多个WAF的集中监控和操作3.4. 使用socket进行封装3.5. 日志的高效存储和检索(Redis) 4. 轻量级客户端4.1. 功能概述4.2. 对Web程序的防护4.3. 网络…...

设计模式在FileBrowser中的几个应用

设计模式是代码重构的最终目标,在程序设计中有效的运用这项技术,可以大大提高代码的可读性和可维护性。使整个程序设计结构趋向精致完美。在我维护的FileBrowser模块中可以针对以下方面 应用相应的模式。 1. 使用策略模式来处理文件夹扫描操作 作为网…...

【JavaEE进阶】——Spring AOP

目录 🚩Spring AOP概述 🚩Spring AOP快速⼊⻔ 🎓引入AOP依赖 🎓编写AOP程序 🚩Spring AOP 详解 🎓Spring AOP核⼼概念 🎓通知类型 🎓PointCut 🎓切⾯优先级 Ord…...

Python - conda使用大全

如何使用Conda? 环境 创建环境 conda create -n spider_env python3.10.11查看环境 conda env listconda info -e激活环境 conda activate spider_env退出环境 conda deactivate删除环境 conda env remove -n spider_env包 导出包 说明:导出当前虚拟…...

ASPICE在汽车软件开发中的作用

ASPICE是一个专门为汽车软件开发过程而设计的评估和改进框架。它基于ISO/IEC 15504标准,为汽车供应商提供了一个评估和改进其软件开发流程的方法。ASPICE的目标是确保软件开发过程的一致性和可预测性,从而提高软件的质量和可靠性。 ASPICE的实施对汽车软…...

亚马逊云科技 re:Inforce 2024中国站大会

亚马逊云科技 re:Inforce 2024中国站大会 - 生成式AI时代的全面安全,将于7月25日本周四在北京富力万丽酒店揭幕...

Lottie:动态动画的魔法棒

文章目录 引言官网链接Lottie 的原理基础使用1. 导出动画2. 引入 Lottie 库3. 加载和播放动画 高级使用1. 动画控制2. 交互性3. 自定义动画例子:交互式按钮动画 优缺点优点缺点 结语 引言 Lottie 是 Airbnb 开源的一个动画库,它允许设计师在 Adobe Afte…...

IPython使用技巧整理

IPython 是一个增强的 Python 交互式 shell,它提供了许多便利的功能,比如自动补全、魔术命令、对象内省等。以下是 IPython 的一些使用技巧和示例,结合您提供的列表数据,我将给出一些相关的使用示例。 1. 自动补全(Tab…...

C#数组复习

一、一维数组 using System.Collections; using System.Collections.Generic; using UnityEngine;public class ShuZu : MonoBehaviour {#region 知识点一 基本概念//数组是存储一组相同类型数据的集合//数组分为 一维、二维、交错数组//一般情况 一维数组 就简称为数组#en…...

无人机之在农业上的用途

随着无人机技术的发展,农业现代化也迎来了崭新局面,田间随处可见无人机矫健的身影。当农业遇上科技,变革正悄然进行。农业无人机主要应用于农业、种植业、林业等行业。在使用过程中,其功能和作用并不单一,一般用于种植…...

opengaussdb在oepnEuler上安装

安装前提: 软件环境:openEuler 20.03LTS 个人开发者最低配置2核4G,推荐配置4核8G 数据库版本:openGauss-5.0.2-openEuler-64bit-all.tar.gz 数据库下载地址: https://docs-opengauss.osinfra.cn/zh/docs/5.0.0/docs/In…...

一些和颜色相关网站

1.中国传统色 2.网页颜色选择器 3.渐变色网站 4.多风格色卡生成 5.波浪生成 6.半透明磨砂框 7.色卡组合...

Linux系统编程-文件系统

目录 什么是Linux文件系统 文件系统的职责 存储介质抽象 inode:文件系统的核心 文件分配策略 目录结构 文件系统布局 日志和恢复机制 目录权限 粘滞位(t位): 硬链接和符号链接 硬链接的特点: 创建硬链接: 符号链接的…...

【解决】ubuntu20.04 root用户无法SSH登陆问题

Ubuntu root用户无法登录的问题通常可以通过修改‌SSH配置文件和系统登录配置来解决。 修改SSH配置文件 sudo vim /etc/ssh/sshd_config 找到 PermitRootLogin 设置,并将其值更改为 yes 以允许root用户通过SSH登录 保存并关闭文件之后,需要重启SSH服务…...

(前缀和) LeetCode 238. 除自身以外数组的乘积

一. 题目描述 原题链接 给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&…...

【JVM基础05】——组成-能不能解释一下方法区?

目录 1- 引言:方法区概述1-1 方法区是什么?(What)1-2 为什么用方法区?方法区的作用 (Why) 2- ⭐核心:详解方法区(How)2-1 能不能解释一下方法区?2-2 元空间内存溢出问题2-3 什么是常量池?2-4 运行时常量池 …...

前端:Vue学习-3

前端:Vue学习-3 1. 自定义指令2. 插槽2.1 插槽 - 后备内容(默认值)2.2 插槽 - 具名插槽2.3 插槽 - 作用域插槽 3. Vue - 路由3.1 路由模块封装3.2 声明式导航 router-link 高亮3.3 自定义匹配的类名3.4 声明式导肮 - 跳转传参3.5 Vue路由 - 重…...

npm 安装报错(已解决)+ 运行 “wue-cli-service”不是内部或外部命令,也不是可运行的程序(已解决)

首先先说一下我这个项目是3年前的一个项目了,中间也是经过了多个人的修改惨咋了布置多少个人的思想,这这道我手里直接npm都安装不上,在网上也查询了多种方法,终于是找到问题所在了 问题1: 先是npm i 报错在下面图片&…...

江苏科技大学24计算机考研数据速览,有专硕复试线大幅下降67分!

江苏科技大学(Jiangsu University of Science and Technology),坐落在江苏省镇江市,是江苏省重点建设高校,江苏省人民政府与中国船舶集团有限公司共建高校,国家国防科技工业局与江苏省人民政府共建高校 &am…...

20分钟上手新版Skywalking 9.x APM监控系统

Skywalking https://skywalking.apache.org/ Skywalking是专为微服务、云原生和基于容器的(Kubernetes)架构设计的分布式系统性能监控工具。 Skywalking关键特性 ● 分布式跟踪 ○ 端到端分布式跟踪。服务拓扑分析、以服务为中心的可观察性和API仪表板。…...

Qt Widget类解析与代码注释

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析

Linux 内存管理实战精讲:核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用,还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)

本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...

JavaScript基础-API 和 Web API

在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化

缓存架构 代码结构 代码详情 功能点: 多级缓存,先查本地缓存,再查Redis,最后才查数据库热点数据重建逻辑使用分布式锁,二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...

如何配置一个sql server使得其它用户可以通过excel odbc获取数据

要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据,你需要完成以下配置步骤: ✅ 一、在 SQL Server 端配置(服务器设置) 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到:SQL Server 网络配…...

恶补电源:1.电桥

一、元器件的选择 搜索并选择电桥,再multisim中选择FWB,就有各种型号的电桥: 电桥是用来干嘛的呢? 它是一个由四个二极管搭成的“桥梁”形状的电路,用来把交流电(AC)变成直流电(DC)。…...

从零开始了解数据采集(二十八)——制造业数字孪生

近年来,我国的工业领域正经历一场前所未有的数字化变革,从“双碳目标”到工业互联网平台的推广,国家政策和市场需求共同推动了制造业的升级。在这场变革中,数字孪生技术成为备受关注的关键工具,它不仅让企业“看见”设…...