go实现waf web防火墙代理请求示例代码

代码语言:golang

所属分类:其他

代码描述:go实现waf web防火墙代理请求示例代码,可以限流、过滤危险请求与响应,非正常请求等过滤,基于反向代理实现。

代码标签: go waf web 防火墙 代理 请求 示例 代码

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

// main.go
package main

import (
	"fmt"
	"log"
	"net"
	"net/http"
	"net/http/httputil"
	"net/url"
	"regexp"
	"strings"
	"sync"
	"time"
)

const (
	// 后端 Nginx 地址
	backendAddr = "http://127.0.0.1:8081"

	// 每 IP 每分钟最大请求数
	rateLimit = 20
)

// 全局限流计数器(生产环境建议用 Redis)
var (
	ipCounter = make(map[string]int64)
	counterMu = sync.RWMutex{}
)

func init() {
	// 每分钟清空计数器(简化版)
	go func() {
.........完整代码请登录后点击上方下载按钮下载查看

网友评论0