mirror of
https://github.com/yusing/godoxy.git
synced 2025-05-19 20:32:35 +02:00
fix cloudflare real ip middleware resolving local addresses
This commit is contained in:
parent
b8900999a4
commit
f1bfd13da3
1 changed files with 11 additions and 8 deletions
|
@ -30,6 +30,14 @@ const (
|
||||||
var (
|
var (
|
||||||
cfCIDRsLastUpdate time.Time
|
cfCIDRsLastUpdate time.Time
|
||||||
cfCIDRsMu sync.Mutex
|
cfCIDRsMu sync.Mutex
|
||||||
|
|
||||||
|
// RFC 1918.
|
||||||
|
localCIDRs = []*types.CIDR{
|
||||||
|
{IP: net.IPv4(127, 0, 0, 1), Mask: net.IPv4Mask(255, 255, 255, 255)}, // 127.0.0.1/32
|
||||||
|
{IP: net.IPv4(10, 0, 0, 0), Mask: net.IPv4Mask(255, 0, 0, 0)}, // 10.0.0.0/8
|
||||||
|
{IP: net.IPv4(172, 16, 0, 0), Mask: net.IPv4Mask(255, 240, 0, 0)}, // 172.16.0.0/12
|
||||||
|
{IP: net.IPv4(192, 168, 0, 0), Mask: net.IPv4Mask(255, 255, 0, 0)}, // 192.168.0.0/16
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
var CloudflareRealIP = NewMiddleware[cloudflareRealIP]()
|
var CloudflareRealIP = NewMiddleware[cloudflareRealIP]()
|
||||||
|
@ -37,7 +45,7 @@ var CloudflareRealIP = NewMiddleware[cloudflareRealIP]()
|
||||||
// setup implements MiddlewareWithSetup.
|
// setup implements MiddlewareWithSetup.
|
||||||
func (cri *cloudflareRealIP) setup() {
|
func (cri *cloudflareRealIP) setup() {
|
||||||
cri.realIP.RealIPOpts = RealIPOpts{
|
cri.realIP.RealIPOpts = RealIPOpts{
|
||||||
Header: "Cf-Connecting-Ip",
|
Header: "CF-Connecting-IP",
|
||||||
Recursive: cri.Recursive,
|
Recursive: cri.Recursive,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -72,12 +80,7 @@ func tryFetchCFCIDR() (cfCIDRs []*types.CIDR) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if common.IsTest {
|
if common.IsTest {
|
||||||
cfCIDRs = []*types.CIDR{
|
cfCIDRs = localCIDRs
|
||||||
{IP: net.IPv4(127, 0, 0, 1), Mask: net.IPv4Mask(255, 0, 0, 0)},
|
|
||||||
{IP: net.IPv4(10, 0, 0, 0), Mask: net.IPv4Mask(255, 0, 0, 0)},
|
|
||||||
{IP: net.IPv4(172, 16, 0, 0), Mask: net.IPv4Mask(255, 255, 0, 0)},
|
|
||||||
{IP: net.IPv4(192, 168, 0, 0), Mask: net.IPv4Mask(255, 255, 255, 0)},
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
cfCIDRs = make([]*types.CIDR, 0, 30)
|
cfCIDRs = make([]*types.CIDR, 0, 30)
|
||||||
err := errors.Join(
|
err := errors.Join(
|
||||||
|
@ -122,6 +125,6 @@ func fetchUpdateCFIPRange(endpoint string, cfCIDRs *[]*types.CIDR) error {
|
||||||
|
|
||||||
*cfCIDRs = append(*cfCIDRs, (*types.CIDR)(cidr))
|
*cfCIDRs = append(*cfCIDRs, (*types.CIDR)(cidr))
|
||||||
}
|
}
|
||||||
|
*cfCIDRs = append(*cfCIDRs, localCIDRs...)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue