diff --git a/internal/waf/injectionutils/utils.go b/internal/waf/injectionutils/utils.go index a1c5178..7b1f3e2 100644 --- a/internal/waf/injectionutils/utils.go +++ b/internal/waf/injectionutils/utils.go @@ -27,7 +27,7 @@ func DetectSQLInjection(input string) bool { } // 兼容 /PATH?URI - if input[0] == '/' { + if input[0] == '/' || strings.HasPrefix(input, "http://") || strings.HasPrefix(input, "https://") { var argsIndex = strings.Index(input, "?") if argsIndex > 0 { var args = input[argsIndex+1:] diff --git a/internal/waf/injectionutils/utils_test.go b/internal/waf/injectionutils/utils_test.go index bffa728..aa67452 100644 --- a/internal/waf/injectionutils/utils_test.go +++ b/internal/waf/injectionutils/utils_test.go @@ -21,6 +21,7 @@ func TestDetectSQLInjection(t *testing.T) { a.IsFalse(injectionutils.DetectSQLInjection("/hello?age=22")) a.IsTrue(injectionutils.DetectSQLInjection("/sql/injection?id=123 or 1=1")) a.IsTrue(injectionutils.DetectSQLInjection("/sql/injection?id=123%20or%201=1")) + a.IsTrue(injectionutils.DetectSQLInjection("https://example.com/sql/injection?id=123%20or%201=1")) } func BenchmarkDetectSQLInjection(b *testing.B) {