This commit is contained in:
GoEdgeLab
2024-07-27 15:42:50 +08:00
parent d511145bc5
commit c19be78e0d
524 changed files with 1817 additions and 1346 deletions
+2 -1
View File
@@ -1,8 +1,9 @@
package waf
import (
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"net/http"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
)
type AllowScope = string
+7 -6
View File
@@ -1,6 +1,13 @@
package waf
import (
"io"
"net/http"
"os"
"path/filepath"
"regexp"
"time"
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/firewallconfigs"
teaconst "github.com/TeaOSLab/EdgeNode/internal/const"
"github.com/TeaOSLab/EdgeNode/internal/utils"
@@ -9,12 +16,6 @@ import (
"github.com/iwind/TeaGo/Tea"
"github.com/iwind/TeaGo/logs"
"github.com/iwind/TeaGo/rands"
"io"
"net/http"
"os"
"path/filepath"
"regexp"
"time"
)
// url client configure
+5 -4
View File
@@ -1,6 +1,11 @@
package waf
import (
"net/http"
"net/url"
"strings"
"time"
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/firewallconfigs"
"github.com/TeaOSLab/EdgeNode/internal/remotelogs"
"github.com/TeaOSLab/EdgeNode/internal/utils"
@@ -8,10 +13,6 @@ import (
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
wafutils "github.com/TeaOSLab/EdgeNode/internal/waf/utils"
"github.com/iwind/TeaGo/types"
"net/http"
"net/url"
"strings"
"time"
)
const (
+4 -3
View File
@@ -1,13 +1,14 @@
package waf
import (
"net/http"
"net/url"
"time"
"github.com/TeaOSLab/EdgeNode/internal/remotelogs"
"github.com/TeaOSLab/EdgeNode/internal/utils"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"github.com/iwind/TeaGo/types"
"net/http"
"net/url"
"time"
)
const (
+2 -1
View File
@@ -1,10 +1,11 @@
package waf
import (
"net/http"
"github.com/TeaOSLab/EdgeNode/internal/remotelogs"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"github.com/iwind/TeaGo/types"
"net/http"
)
type GoGroupAction struct {
+2 -1
View File
@@ -1,10 +1,11 @@
package waf
import (
"net/http"
"github.com/TeaOSLab/EdgeNode/internal/remotelogs"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"github.com/iwind/TeaGo/types"
"net/http"
)
type GoSetAction struct {
+2 -1
View File
@@ -3,8 +3,9 @@
package waf
import (
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"net/http"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
)
type ActionInterface interface {
+5 -4
View File
@@ -1,18 +1,19 @@
// Copyright 2022 GoEdge goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cn .
// Copyright 2022 GoEdge goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cloud .
package waf
import (
"crypto/md5"
"fmt"
"net/http"
"strings"
"time"
"github.com/TeaOSLab/EdgeCommon/pkg/nodeconfigs"
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/firewallconfigs"
"github.com/TeaOSLab/EdgeNode/internal/utils/counters"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"github.com/iwind/TeaGo/types"
"net/http"
"strings"
"time"
)
type JSCookieAction struct {
+2 -1
View File
@@ -1,8 +1,9 @@
package waf
import (
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"net/http"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
)
type LogAction struct {
+3 -2
View File
@@ -3,6 +3,9 @@
package waf
import (
"net/http"
"time"
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
teaconst "github.com/TeaOSLab/EdgeNode/internal/const"
"github.com/TeaOSLab/EdgeNode/internal/events"
@@ -11,8 +14,6 @@ import (
"github.com/TeaOSLab/EdgeNode/internal/utils/goman"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"github.com/iwind/TeaGo/types"
"net/http"
"time"
)
type notifyTask struct {
+2 -1
View File
@@ -3,8 +3,9 @@
package waf
import (
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"net/http"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
)
type PageAction struct {
+4 -3
View File
@@ -1,14 +1,15 @@
package waf
import (
"io"
"net/http"
"time"
"github.com/TeaOSLab/EdgeNode/internal/remotelogs"
"github.com/TeaOSLab/EdgeNode/internal/utils"
"github.com/TeaOSLab/EdgeNode/internal/utils/bytepool"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"github.com/iwind/TeaGo/types"
"io"
"net/http"
"time"
)
type Post307Action struct {
+4 -3
View File
@@ -1,6 +1,10 @@
package waf
import (
"net/http"
"strings"
"time"
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/firewallconfigs"
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/ipconfigs"
@@ -12,9 +16,6 @@ import (
memutils "github.com/TeaOSLab/EdgeNode/internal/utils/mem"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"github.com/iwind/TeaGo/types"
"net/http"
"strings"
"time"
)
type recordIPTask struct {
+2 -1
View File
@@ -3,8 +3,9 @@
package waf
import (
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"net/http"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
)
type RedirectAction struct {
+2 -1
View File
@@ -1,8 +1,9 @@
package waf
import (
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"net/http"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
)
type TagAction struct {
+3 -2
View File
@@ -2,10 +2,11 @@ package waf
import (
"encoding/json"
"github.com/TeaOSLab/EdgeNode/internal/remotelogs"
"github.com/iwind/TeaGo/maps"
"reflect"
"sync/atomic"
"github.com/TeaOSLab/EdgeNode/internal/remotelogs"
"github.com/iwind/TeaGo/maps"
)
var seedActionId int64 = 1
+3 -2
View File
@@ -1,12 +1,13 @@
package waf_test
import (
"runtime"
"testing"
"github.com/TeaOSLab/EdgeNode/internal/waf"
"github.com/iwind/TeaGo/assert"
"github.com/iwind/TeaGo/logs"
"github.com/iwind/TeaGo/maps"
"runtime"
"testing"
)
func TestFindActionInstance(t *testing.T) {
+2 -1
View File
@@ -1,4 +1,4 @@
// Copyright 2024 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cn .
// Copyright 2024 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cloud .
package waf
@@ -6,6 +6,7 @@ import (
"encoding/base64"
"encoding/binary"
"errors"
"github.com/TeaOSLab/EdgeNode/internal/utils"
)
+3 -2
View File
@@ -1,13 +1,14 @@
// Copyright 2024 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cn .
// Copyright 2024 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cloud .
package waf_test
import (
"testing"
"github.com/TeaOSLab/EdgeNode/internal/utils/fasttime"
"github.com/TeaOSLab/EdgeNode/internal/waf"
"github.com/iwind/TeaGo/assert"
"github.com/iwind/TeaGo/types"
"testing"
)
func TestAllowCookieInfo_Encode(t *testing.T) {
+3 -2
View File
@@ -1,13 +1,14 @@
// Copyright 2022 GoEdge goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cn .
// Copyright 2022 GoEdge goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cloud .
package waf
import (
"time"
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/firewallconfigs"
"github.com/TeaOSLab/EdgeNode/internal/utils/counters"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"github.com/iwind/TeaGo/types"
"time"
)
type CaptchaPageCode = string
+4 -3
View File
@@ -1,13 +1,14 @@
// Copyright 2023 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cn .
// Copyright 2023 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cloud .
package waf
import (
"bytes"
"github.com/dchest/captcha"
"github.com/iwind/TeaGo/rands"
"io"
"time"
"github.com/dchest/captcha"
"github.com/iwind/TeaGo/rands"
)
// CaptchaGenerator captcha generator
+6 -5
View File
@@ -1,16 +1,17 @@
// Copyright 2023 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cn .
// Copyright 2023 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cloud .
package waf_test
import (
"github.com/TeaOSLab/EdgeNode/internal/utils/testutils"
"github.com/TeaOSLab/EdgeNode/internal/waf"
"github.com/iwind/TeaGo/assert"
"github.com/iwind/TeaGo/types"
"runtime"
"strings"
"testing"
"time"
"github.com/TeaOSLab/EdgeNode/internal/utils/testutils"
"github.com/TeaOSLab/EdgeNode/internal/waf"
"github.com/iwind/TeaGo/assert"
"github.com/iwind/TeaGo/types"
)
func TestCaptchaGenerator_NewCaptcha(t *testing.T) {
+4 -3
View File
@@ -1,15 +1,16 @@
// Copyright 2023 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cn .
// Copyright 2023 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cloud .
package waf_test
import (
"bytes"
"fmt"
"github.com/TeaOSLab/EdgeNode/internal/utils/testutils"
"github.com/dchest/captcha"
"runtime"
"testing"
"time"
"github.com/TeaOSLab/EdgeNode/internal/utils/testutils"
"github.com/dchest/captcha"
)
func TestCaptchaMemory(t *testing.T) {
+7 -6
View File
@@ -5,6 +5,13 @@ import (
"crypto/sha256"
"encoding/hex"
"encoding/json"
"io"
"net/http"
"net/url"
"strconv"
"strings"
"time"
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/firewallconfigs"
"github.com/TeaOSLab/EdgeNode/internal/compressions"
"github.com/TeaOSLab/EdgeNode/internal/utils"
@@ -17,12 +24,6 @@ import (
"github.com/iwind/TeaGo/rands"
"github.com/iwind/TeaGo/types"
stringutil "github.com/iwind/TeaGo/utils/string"
"io"
"net/http"
"net/url"
"strconv"
"strings"
"time"
)
const captchaIdName = "GOEDGE_WAF_CAPTCHA_ID"
+2 -1
View File
@@ -1,12 +1,13 @@
package checkpoints
import (
"regexp"
"github.com/TeaOSLab/EdgeNode/internal/utils/counters"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"github.com/TeaOSLab/EdgeNode/internal/waf/utils"
"github.com/iwind/TeaGo/maps"
"github.com/iwind/TeaGo/types"
"regexp"
)
// CCCheckpoint ${cc.arg}
+3 -2
View File
@@ -4,14 +4,15 @@ package checkpoints
import (
"fmt"
"path/filepath"
"strings"
"github.com/TeaOSLab/EdgeNode/internal/utils"
"github.com/TeaOSLab/EdgeNode/internal/utils/counters"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
wafutils "github.com/TeaOSLab/EdgeNode/internal/waf/utils"
"github.com/iwind/TeaGo/maps"
"github.com/iwind/TeaGo/types"
"path/filepath"
"strings"
)
// CC2Checkpoint 新的CC
+3 -2
View File
@@ -1,10 +1,11 @@
package checkpoints
import (
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"github.com/iwind/TeaGo/maps"
"net/http"
"testing"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"github.com/iwind/TeaGo/maps"
)
func TestCCCheckpoint_RequestValue(t *testing.T) {
+2 -1
View File
@@ -1,8 +1,9 @@
package checkpoints
import (
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"net/http"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
)
type Checkpoint struct {
+3 -2
View File
@@ -2,13 +2,14 @@ package checkpoints
import (
"bytes"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"github.com/iwind/TeaGo/types"
"io"
"net/http"
"runtime"
"strings"
"testing"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"github.com/iwind/TeaGo/types"
)
func TestRequestAllCheckpoint_RequestValue(t *testing.T) {
+2 -1
View File
@@ -1,9 +1,10 @@
package checkpoints
import (
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"net/http"
"testing"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
)
func TestArgParam_RequestValue(t *testing.T) {
@@ -2,12 +2,13 @@ package checkpoints
import (
"bytes"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"github.com/iwind/TeaGo/types"
"io"
"net/http"
"strings"
"testing"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"github.com/iwind/TeaGo/types"
)
func TestRequestBodyCheckpoint_RequestValue(t *testing.T) {
+3 -2
View File
@@ -1,11 +1,12 @@
package checkpoints
import (
"net/url"
"strings"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"github.com/TeaOSLab/EdgeNode/internal/waf/utils"
"github.com/iwind/TeaGo/maps"
"net/url"
"strings"
)
type RequestCookiesCheckpoint struct {
+2 -1
View File
@@ -1,10 +1,11 @@
package checkpoints
import (
"net/url"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"github.com/TeaOSLab/EdgeNode/internal/waf/utils"
"github.com/iwind/TeaGo/maps"
"net/url"
)
// RequestFormArgCheckpoint ${requestForm.arg}
@@ -2,11 +2,12 @@ package checkpoints
import (
"bytes"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"io"
"net/http"
"net/url"
"testing"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
)
func TestRequestFormArgCheckpoint_RequestValue(t *testing.T) {
+2 -1
View File
@@ -1,10 +1,11 @@
package checkpoints
import (
"strings"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"github.com/TeaOSLab/EdgeNode/internal/waf/utils"
"github.com/iwind/TeaGo/maps"
"strings"
)
type RequestHeaderCheckpoint struct {
@@ -1,10 +1,11 @@
package checkpoints
import (
"strings"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"github.com/TeaOSLab/EdgeNode/internal/waf/utils"
"github.com/iwind/TeaGo/maps"
"strings"
)
type RequestHeaderNamesCheckpoint struct {
@@ -3,10 +3,11 @@
package checkpoints_test
import (
"github.com/TeaOSLab/EdgeNode/internal/waf/checkpoints"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"net/http"
"testing"
"github.com/TeaOSLab/EdgeNode/internal/waf/checkpoints"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
)
func TestRequestHeaderNamesCheckpoint_RequestValue(t *testing.T) {
+3 -2
View File
@@ -1,11 +1,12 @@
package checkpoints
import (
"sort"
"strings"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"github.com/TeaOSLab/EdgeNode/internal/waf/utils"
"github.com/iwind/TeaGo/maps"
"sort"
"strings"
)
type RequestHeadersCheckpoint struct {
@@ -1,9 +1,10 @@
package checkpoints
import (
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"net/http"
"testing"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
)
func TestRequestHostCheckpoint_RequestValue(t *testing.T) {
+2 -1
View File
@@ -2,11 +2,12 @@ package checkpoints
import (
"encoding/json"
"strings"
"github.com/TeaOSLab/EdgeNode/internal/utils"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
wafutils "github.com/TeaOSLab/EdgeNode/internal/waf/utils"
"github.com/iwind/TeaGo/maps"
"strings"
)
// RequestJSONArgCheckpoint ${requestJSON.arg}
@@ -2,10 +2,11 @@ package checkpoints
import (
"bytes"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"io"
"net/http"
"testing"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
)
func TestRequestJSONArgCheckpoint_RequestValue_Map(t *testing.T) {
@@ -1,9 +1,10 @@
package checkpoints
import (
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"net/http"
"testing"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
)
func TestRequestPathCheckpoint_RequestValue(t *testing.T) {
@@ -1,10 +1,11 @@
package checkpoints
import (
"net"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"github.com/TeaOSLab/EdgeNode/internal/waf/utils"
"github.com/iwind/TeaGo/maps"
"net"
)
type RequestRawRemoteAddrCheckpoint struct {
@@ -3,12 +3,13 @@
package checkpoints
import (
"net/url"
"github.com/TeaOSLab/EdgeCommon/pkg/configutils"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"github.com/TeaOSLab/EdgeNode/internal/waf/utils"
"github.com/iwind/TeaGo/maps"
"github.com/iwind/TeaGo/types"
"net/url"
)
// RequestRefererBlockCheckpoint 防盗链
@@ -1,10 +1,11 @@
package checkpoints_test
import (
"github.com/TeaOSLab/EdgeNode/internal/waf/checkpoints"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"net/http"
"testing"
"github.com/TeaOSLab/EdgeNode/internal/waf/checkpoints"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
)
func TestRequestRefererOriginCheckpoint_RequestValue(t *testing.T) {
@@ -1,11 +1,12 @@
package checkpoints
import (
"net"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"github.com/TeaOSLab/EdgeNode/internal/waf/utils"
"github.com/iwind/TeaGo/maps"
"github.com/iwind/TeaGo/types"
"net"
)
type RequestRemotePortCheckpoint struct {
@@ -1,9 +1,10 @@
package checkpoints
import (
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"net/http"
"testing"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
)
func TestRequestSchemeCheckpoint_RequestValue(t *testing.T) {
+6 -5
View File
@@ -2,17 +2,18 @@ package checkpoints
import (
"bytes"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"github.com/TeaOSLab/EdgeNode/internal/waf/utils"
"github.com/iwind/TeaGo/lists"
"github.com/iwind/TeaGo/maps"
"github.com/iwind/TeaGo/types"
"io"
"net/http"
"path/filepath"
"regexp"
"strconv"
"strings"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"github.com/TeaOSLab/EdgeNode/internal/waf/utils"
"github.com/iwind/TeaGo/lists"
"github.com/iwind/TeaGo/maps"
"github.com/iwind/TeaGo/types"
)
var multipartHeaderRegexp = regexp.MustCompile(`(?i)(?:^|\r\n)--+\w+\r\n((([\w-]+: .+)\r\n)+)`)
@@ -2,11 +2,12 @@ package checkpoints
import (
"bytes"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"io"
"mime/multipart"
"net/http"
"testing"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
)
func TestRequestUploadCheckpoint_RequestValue(t *testing.T) {
+2 -1
View File
@@ -2,10 +2,11 @@ package checkpoints
import (
"bytes"
"io"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"github.com/TeaOSLab/EdgeNode/internal/waf/utils"
"github.com/iwind/TeaGo/maps"
"io"
)
// ResponseBodyCheckpoint ${responseBody}
@@ -2,10 +2,11 @@ package checkpoints
import (
"bytes"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"io"
"net/http"
"testing"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
)
func TestResponseBodyCheckpoint_ResponseValue(t *testing.T) {
@@ -1,9 +1,10 @@
package checkpoints
import (
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"net/http"
"testing"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
)
func TestResponseHeaderCheckpoint_ResponseValue(t *testing.T) {
@@ -1,9 +1,10 @@
package checkpoints
import (
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"net/http"
"testing"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
)
func TestResponseStatusCheckpoint_ResponseValue(t *testing.T) {
+1 -1
View File
@@ -149,7 +149,7 @@ var AllCheckpoints = []*CheckpointDefinition{
{
Name: "CNAME",
Prefix: "cname",
Description: "当前网站服务CNAME,比如38b48e4f.goedge.cn",
Description: "当前网站服务CNAME,比如38b48e4f.goedge.cloud",
HasParams: false,
Instance: new(RequestCNAMECheckpoint),
Priority: 100,
+3 -2
View File
@@ -3,11 +3,12 @@
package waf
import (
"net/http"
"time"
"github.com/TeaOSLab/EdgeNode/internal/utils"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"github.com/iwind/TeaGo/types"
"net/http"
"time"
)
var get302Validator = NewGet302Validator()
+3 -2
View File
@@ -1,11 +1,12 @@
// Copyright 2024 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cn .
// Copyright 2024 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cloud .
package waf
import (
"net/url"
"github.com/TeaOSLab/EdgeNode/internal/utils"
"github.com/TeaOSLab/EdgeNode/internal/utils/fasttime"
"net/url"
)
type InfoArg struct {
+4 -3
View File
@@ -1,12 +1,13 @@
// Copyright 2024 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cn .
// Copyright 2024 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cloud .
package waf_test
import (
"github.com/TeaOSLab/EdgeNode/internal/waf"
"github.com/iwind/TeaGo/types"
"testing"
"time"
"github.com/TeaOSLab/EdgeNode/internal/waf"
"github.com/iwind/TeaGo/types"
)
func TestInfoArg_Encode(t *testing.T) {
+5 -4
View File
@@ -1,4 +1,4 @@
// Copyright 2023 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cn .
// Copyright 2023 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cloud .
package injectionutils
@@ -10,14 +10,15 @@ package injectionutils
*/
import "C"
import (
"github.com/TeaOSLab/EdgeNode/internal/utils/fasttime"
"github.com/TeaOSLab/EdgeNode/internal/waf/utils"
"github.com/cespare/xxhash/v2"
"net/url"
"strconv"
"strings"
"unicode/utf8"
"unsafe"
"github.com/TeaOSLab/EdgeNode/internal/utils/fasttime"
"github.com/TeaOSLab/EdgeNode/internal/waf/utils"
"github.com/cespare/xxhash/v2"
)
// DetectSQLInjectionCache detect sql injection in string with cache
@@ -1,16 +1,17 @@
// Copyright 2023 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cn .
// Copyright 2023 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cloud .
package injectionutils_test
import (
"runtime"
"strings"
"testing"
"github.com/TeaOSLab/EdgeNode/internal/waf/injectionutils"
"github.com/TeaOSLab/EdgeNode/internal/waf/utils"
"github.com/iwind/TeaGo/assert"
"github.com/iwind/TeaGo/rands"
"github.com/iwind/TeaGo/types"
"runtime"
"strings"
"testing"
)
func TestDetectSQLInjection(t *testing.T) {
+5 -4
View File
@@ -1,4 +1,4 @@
// Copyright 2023 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cn .
// Copyright 2023 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cloud .
package injectionutils
@@ -10,13 +10,14 @@ package injectionutils
*/
import "C"
import (
"github.com/TeaOSLab/EdgeNode/internal/utils/fasttime"
"github.com/TeaOSLab/EdgeNode/internal/waf/utils"
"github.com/cespare/xxhash/v2"
"net/url"
"strconv"
"strings"
"unsafe"
"github.com/TeaOSLab/EdgeNode/internal/utils/fasttime"
"github.com/TeaOSLab/EdgeNode/internal/waf/utils"
"github.com/cespare/xxhash/v2"
)
func DetectXSSCache(input string, isStrict bool, cacheLife utils.CacheLife) bool {
@@ -1,13 +1,14 @@
// Copyright 2023 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cn .
// Copyright 2023 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cloud .
package injectionutils_test
import (
"runtime"
"testing"
"github.com/TeaOSLab/EdgeNode/internal/waf/injectionutils"
"github.com/TeaOSLab/EdgeNode/internal/waf/utils"
"github.com/iwind/TeaGo/assert"
"runtime"
"testing"
)
func TestDetectXSS(t *testing.T) {
+4 -3
View File
@@ -4,6 +4,10 @@ package waf
import (
"encoding/json"
"os"
"sync"
"sync/atomic"
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/firewallconfigs"
"github.com/TeaOSLab/EdgeNode/internal/conns"
teaconst "github.com/TeaOSLab/EdgeNode/internal/const"
@@ -14,9 +18,6 @@ import (
"github.com/iwind/TeaGo/Tea"
"github.com/iwind/TeaGo/maps"
"github.com/iwind/TeaGo/types"
"os"
"sync"
"sync/atomic"
)
var SharedIPWhiteList = NewIPList(IPListTypeAllow)
+6 -5
View File
@@ -3,6 +3,12 @@
package waf_test
import (
"os"
"runtime"
"strconv"
"testing"
"time"
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/firewallconfigs"
"github.com/TeaOSLab/EdgeNode/internal/utils/testutils"
"github.com/TeaOSLab/EdgeNode/internal/waf"
@@ -11,11 +17,6 @@ import (
_ "github.com/iwind/TeaGo/bootstrap"
"github.com/iwind/TeaGo/logs"
timeutil "github.com/iwind/TeaGo/utils/time"
"os"
"runtime"
"strconv"
"testing"
"time"
)
func TestNewIPList(t *testing.T) {
+3 -2
View File
@@ -1,10 +1,11 @@
// Copyright 2023 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cn .
// Copyright 2023 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cloud .
package waf
import (
"github.com/TeaOSLab/EdgeNode/internal/utils/zero"
"sync"
"github.com/TeaOSLab/EdgeNode/internal/utils/zero"
)
var deletedIPListIdMap = map[int64]zero.Zero{} // listId => Zero
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright 2024 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cn .
// Copyright 2024 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cloud .
package waf
+6 -5
View File
@@ -5,6 +5,12 @@ import (
"encoding/base64"
"encoding/binary"
"errors"
"net"
"reflect"
"regexp"
"sort"
"strings"
"github.com/TeaOSLab/EdgeCommon/pkg/configutils"
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/filterconfigs"
"github.com/TeaOSLab/EdgeNode/internal/remotelogs"
@@ -19,11 +25,6 @@ import (
"github.com/iwind/TeaGo/maps"
"github.com/iwind/TeaGo/types"
stringutil "github.com/iwind/TeaGo/utils/string"
"net"
"reflect"
"regexp"
"sort"
"strings"
)
var singleParamRegexp = regexp.MustCompile(`^\${[\w.-]+}$`)
+1
View File
@@ -2,6 +2,7 @@ package waf
import (
"fmt"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
)
+3 -2
View File
@@ -2,6 +2,9 @@ package waf
import (
"fmt"
"net/http"
"sort"
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/firewallconfigs"
"github.com/TeaOSLab/EdgeNode/internal/remotelogs"
"github.com/TeaOSLab/EdgeNode/internal/utils"
@@ -10,8 +13,6 @@ import (
"github.com/iwind/TeaGo/lists"
"github.com/iwind/TeaGo/maps"
"github.com/iwind/TeaGo/types"
"net/http"
"sort"
)
type RuleConnector = string
+5 -4
View File
@@ -2,15 +2,16 @@ package waf_test
import (
"bytes"
"net/http"
"regexp"
"runtime"
"testing"
"github.com/TeaOSLab/EdgeNode/internal/waf"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"github.com/cespare/xxhash/v2"
"github.com/iwind/TeaGo/assert"
"github.com/iwind/TeaGo/maps"
"net/http"
"regexp"
"runtime"
"testing"
)
func TestRuleSet_MatchRequest(t *testing.T) {
+4 -3
View File
@@ -1,13 +1,14 @@
package waf
import (
"net/http"
"net/url"
"testing"
"github.com/TeaOSLab/EdgeNode/internal/waf/checkpoints"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"github.com/iwind/TeaGo/assert"
"github.com/iwind/TeaGo/maps"
"net/http"
"net/url"
"testing"
)
func TestRule_Init_Single(t *testing.T) {
+8 -7
View File
@@ -2,13 +2,6 @@ package waf_test
import (
"bytes"
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/firewallconfigs"
"github.com/TeaOSLab/EdgeNode/internal/waf"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"github.com/iwind/TeaGo/assert"
"github.com/iwind/TeaGo/lists"
"github.com/iwind/TeaGo/logs"
"github.com/iwind/TeaGo/types"
"math/rand"
"mime/multipart"
"net/http"
@@ -17,6 +10,14 @@ import (
"strings"
"testing"
"time"
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/firewallconfigs"
"github.com/TeaOSLab/EdgeNode/internal/waf"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"github.com/iwind/TeaGo/assert"
"github.com/iwind/TeaGo/lists"
"github.com/iwind/TeaGo/logs"
"github.com/iwind/TeaGo/types"
)
const testUserAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_0_0) AppleWebKit/500.00 (KHTML, like Gecko) Chrome/100.0.0.0"
+2 -1
View File
@@ -1,6 +1,8 @@
package utils
import (
"strconv"
"github.com/TeaOSLab/EdgeCommon/pkg/iplibrary"
teaconst "github.com/TeaOSLab/EdgeNode/internal/const"
"github.com/TeaOSLab/EdgeNode/internal/utils/agents"
@@ -12,7 +14,6 @@ import (
"github.com/cespare/xxhash/v2"
"github.com/iwind/TeaGo/types"
stringutil "github.com/iwind/TeaGo/utils/string"
"strconv"
)
var SharedCache = ttlcache.NewCache[int8]()
+5 -4
View File
@@ -1,10 +1,6 @@
package utils_test
import (
"github.com/TeaOSLab/EdgeNode/internal/utils/re"
"github.com/TeaOSLab/EdgeNode/internal/utils/testutils"
"github.com/TeaOSLab/EdgeNode/internal/waf/utils"
"github.com/iwind/TeaGo/rands"
"net/http"
"regexp"
"runtime"
@@ -12,6 +8,11 @@ import (
"strings"
"testing"
"time"
"github.com/TeaOSLab/EdgeNode/internal/utils/re"
"github.com/TeaOSLab/EdgeNode/internal/utils/testutils"
"github.com/TeaOSLab/EdgeNode/internal/waf/utils"
"github.com/iwind/TeaGo/rands"
)
func TestMatchStringCache(t *testing.T) {
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright 2022 GoEdge goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cn .
// Copyright 2022 GoEdge goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cloud .
package values
+3 -2
View File
@@ -1,12 +1,13 @@
// Copyright 2022 GoEdge goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cn .
// Copyright 2022 GoEdge goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cloud .
package values_test
import (
"testing"
"github.com/TeaOSLab/EdgeNode/internal/waf/values"
"github.com/iwind/TeaGo/assert"
"github.com/iwind/TeaGo/logs"
"testing"
)
func TestIPRange_ParseIPRangeList(t *testing.T) {
+3 -2
View File
@@ -1,11 +1,12 @@
// Copyright 2022 GoEdge goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cn .
// Copyright 2022 GoEdge goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cloud .
package values
import (
"strings"
"github.com/TeaOSLab/EdgeNode/internal/utils/zero"
"github.com/iwind/TeaGo/types"
"strings"
)
type NumberList struct {
+3 -2
View File
@@ -1,11 +1,12 @@
// Copyright 2022 GoEdge goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cn .
// Copyright 2022 GoEdge goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cloud .
package values_test
import (
"testing"
"github.com/TeaOSLab/EdgeNode/internal/waf/values"
"github.com/iwind/TeaGo/assert"
"testing"
)
func TestParseNumberList(t *testing.T) {
+3 -2
View File
@@ -1,10 +1,11 @@
// Copyright 2022 GoEdge goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cn .
// Copyright 2022 GoEdge goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cloud .
package values
import (
"github.com/TeaOSLab/EdgeNode/internal/utils/zero"
"strings"
"github.com/TeaOSLab/EdgeNode/internal/utils/zero"
)
type StringList struct {
+3 -2
View File
@@ -1,11 +1,12 @@
// Copyright 2022 GoEdge goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cn .
// Copyright 2022 GoEdge goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cloud .
package values_test
import (
"testing"
"github.com/TeaOSLab/EdgeNode/internal/waf/values"
"github.com/iwind/TeaGo/assert"
"testing"
)
func TestParseStringList(t *testing.T) {
+4 -3
View File
@@ -3,6 +3,10 @@ package waf
import (
"errors"
"fmt"
"net/http"
"os"
"reflect"
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/firewallconfigs"
teaconst "github.com/TeaOSLab/EdgeNode/internal/const"
"github.com/TeaOSLab/EdgeNode/internal/waf/checkpoints"
@@ -10,9 +14,6 @@ import (
"github.com/iwind/TeaGo/Tea"
"github.com/iwind/TeaGo/files"
"gopkg.in/yaml.v3"
"net/http"
"os"
"reflect"
)
type WAF struct {
+3 -2
View File
@@ -1,11 +1,12 @@
package waf
import (
"strconv"
"sync"
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/firewallconfigs"
"github.com/TeaOSLab/EdgeNode/internal/errors"
"github.com/TeaOSLab/EdgeNode/internal/remotelogs"
"strconv"
"sync"
)
var SharedWAFManager = NewWAFManager()
+2 -1
View File
@@ -1,10 +1,11 @@
package waf_test
import (
"testing"
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/firewallconfigs"
"github.com/TeaOSLab/EdgeNode/internal/waf"
"github.com/iwind/TeaGo/logs"
"testing"
)
func TestWAFManager_convert(t *testing.T) {
+3 -2
View File
@@ -1,13 +1,14 @@
package waf_test
import (
"net/http"
"testing"
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/firewallconfigs"
"github.com/TeaOSLab/EdgeNode/internal/waf"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"github.com/iwind/TeaGo/assert"
"github.com/iwind/TeaGo/maps"
"net/http"
"testing"
)
func TestWAF_MatchRequest(t *testing.T) {