Skip to content

Commit 5e5a822

Browse files
authored
Merge branch 'main' into mutex_to_sync_map
2 parents c0d3b05 + 842b8f6 commit 5e5a822

File tree

26 files changed

+405
-92
lines changed

26 files changed

+405
-92
lines changed

Diff for: .github/workflows/codeql-analysis.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@ jobs:
1313
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
1414

1515
- name: Initialize CodeQL
16-
uses: github/codeql-action/init@f09c1c0a94de965c15400f5634aa42fac8fb8f88 # v3
16+
uses: github/codeql-action/init@48ab28a6f5dbc2a99bf1e0131198dd8f1df78169 # v3
1717
with:
1818
languages: go
1919

2020
- name: Autobuild
21-
uses: github/codeql-action/autobuild@f09c1c0a94de965c15400f5634aa42fac8fb8f88 # v3
21+
uses: github/codeql-action/autobuild@48ab28a6f5dbc2a99bf1e0131198dd8f1df78169 # v3
2222

2323
- name: Perform CodeQL Analysis
24-
uses: github/codeql-action/analyze@f09c1c0a94de965c15400f5634aa42fac8fb8f88 # v3
24+
uses: github/codeql-action/analyze@48ab28a6f5dbc2a99bf1e0131198dd8f1df78169 # v3

Diff for: .github/workflows/fuzz.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
runs-on: ubuntu-latest
1313
steps:
1414
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
15-
- uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5
15+
- uses: actions/setup-go@3041bf56c941b39c61721a86cd11f3bb1338122a # v5
1616
with:
1717
go-version: ">=1.22.0"
1818
- run: go run mage.go fuzz

Diff for: .github/workflows/lint.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
steps:
2121
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
2222
- name: Install Go
23-
uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5
23+
uses: actions/setup-go@3041bf56c941b39c61721a86cd11f3bb1338122a # v5
2424
with:
2525
go-version: v1.22.x
2626
cache: true

Diff for: .github/workflows/regression.yml

+5-5
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ jobs:
3939
- name: Checkout code
4040
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
4141
- name: Install Go
42-
uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5
42+
uses: actions/setup-go@3041bf56c941b39c61721a86cd11f3bb1338122a # v5
4343
with:
4444
go-version: ${{ matrix.go-version }}
4545
cache: true
@@ -48,28 +48,28 @@ jobs:
4848
export BUILD_TAGS=${{ matrix.build-flag }}
4949
go run mage.go coverage
5050
- name: "Codecov: General"
51-
uses: codecov/codecov-action@015f24e6818733317a2da2edd6290ab26238649a # v5
51+
uses: codecov/codecov-action@1e68e06f1dbfde0e4cefc87efeba9e4643565303 # v5
5252
if: ${{ matrix.go-version == '1.22.x' }}
5353
with:
5454
files: build/coverage.txt
5555
flags: default,${{ matrix.build-flag }}
5656
token: ${{ secrets.CODECOV_TOKEN }}
5757
- name: "Codecov: Examples"
58-
uses: codecov/codecov-action@015f24e6818733317a2da2edd6290ab26238649a # v5
58+
uses: codecov/codecov-action@1e68e06f1dbfde0e4cefc87efeba9e4643565303 # v5
5959
if: ${{ matrix.go-version == '1.22.x' }}
6060
with:
6161
files: build/coverage-examples.txt
6262
flags: examples+${{ matrix.build-flag }}
6363
token: ${{ secrets.CODECOV_TOKEN }}
6464
- name: "Codecov: FTW"
65-
uses: codecov/codecov-action@015f24e6818733317a2da2edd6290ab26238649a # v5
65+
uses: codecov/codecov-action@1e68e06f1dbfde0e4cefc87efeba9e4643565303 # v5
6666
if: ${{ matrix.go-version == '1.22.x' }}
6767
with:
6868
files: build/coverage-ftw.txt
6969
flags: ftw,${{ matrix.build-flag }}
7070
token: ${{ secrets.CODECOV_TOKEN }}
7171
- name: "Codecov: Tinygo"
72-
uses: codecov/codecov-action@015f24e6818733317a2da2edd6290ab26238649a # v5
72+
uses: codecov/codecov-action@1e68e06f1dbfde0e4cefc87efeba9e4643565303 # v5
7373
# only if coverage-tinygo.txt exists
7474
if: ${{ matrix.go-version == '1.22.x' && hashFiles('build/coverage-tinygo.txt') != '' }}
7575
with:

Diff for: .github/workflows/tinygo.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
2828

2929
- name: Install Go
30-
uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5
30+
uses: actions/setup-go@3041bf56c941b39c61721a86cd11f3bb1338122a # v5
3131
with:
3232
go-version: ${{ matrix.go-version }}
3333
cache: true
@@ -38,7 +38,7 @@ jobs:
3838
tinygo-version: ${{ matrix.tinygo-version }}
3939

4040
- name: Cache TinyGo build
41-
uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4
41+
uses: actions/cache@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4
4242
with:
4343
path: |
4444
~/.cache/tinygo

Diff for: examples/http-server/go.mod

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@ require github.com/corazawaf/coraza/v3 v3.2.1
66

77
require (
88
github.com/corazawaf/libinjection-go v0.2.2 // indirect
9-
github.com/magefile/mage v1.15.1-0.20231118170541-2385abb49a1f // indirect
9+
github.com/magefile/mage v1.15.1-0.20241126214340-bdc92f694516 // indirect
1010
github.com/petar-dambovaliev/aho-corasick v0.0.0-20240411101913-e07a1f0e8eb4 // indirect
1111
github.com/tidwall/gjson v1.18.0 // indirect
1212
github.com/tidwall/match v1.1.1 // indirect
1313
github.com/tidwall/pretty v1.2.1 // indirect
14-
golang.org/x/net v0.31.0 // indirect
15-
golang.org/x/sync v0.9.0 // indirect
14+
golang.org/x/net v0.32.0 // indirect
15+
golang.org/x/sync v0.10.0 // indirect
1616
golang.org/x/tools v0.22.0 // indirect
1717
rsc.io/binaryregexp v0.2.0 // indirect
1818
)

Diff for: examples/http-server/go.sum

+8-8
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ github.com/corazawaf/libinjection-go v0.2.2 h1:Chzodvb6+NXh6wew5/yhD0Ggioif9ACrQ
44
github.com/corazawaf/libinjection-go v0.2.2/go.mod h1:OP4TM7xdJ2skyXqNX1AN1wN5nNZEmJNuWbNPOItn7aw=
55
github.com/foxcpp/go-mockdns v1.1.0 h1:jI0rD8M0wuYAxL7r/ynTrCQQq0BVqfB99Vgk7DlmewI=
66
github.com/foxcpp/go-mockdns v1.1.0/go.mod h1:IhLeSFGed3mJIAXPH2aiRQB+kqz7oqu8ld2qVbOu7Wk=
7-
github.com/magefile/mage v1.15.1-0.20231118170541-2385abb49a1f h1:iiLWLoibjCL0XND6inF7bs2nc20lU/FYkiR//VIOLUc=
8-
github.com/magefile/mage v1.15.1-0.20231118170541-2385abb49a1f/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A=
7+
github.com/magefile/mage v1.15.1-0.20241126214340-bdc92f694516 h1:aAO0L0ulox6m/CLRYvJff+jWXYYCKGpEm3os7dM/Z+M=
8+
github.com/magefile/mage v1.15.1-0.20241126214340-bdc92f694516/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A=
99
github.com/miekg/dns v1.1.57 h1:Jzi7ApEIzwEPLHWRcafCN9LZSBbqQpxjt/wpgvg7wcM=
1010
github.com/miekg/dns v1.1.57/go.mod h1:uqRjCRUuEAA6qsOiJvDd+CFo/vW+y5WR6SNmHE55hZk=
1111
github.com/petar-dambovaliev/aho-corasick v0.0.0-20240411101913-e07a1f0e8eb4 h1:1Kw2vDBXmjop+LclnzCb/fFy+sgb3gYARwfmoUcQe6o=
@@ -19,12 +19,12 @@ github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4=
1919
github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU=
2020
golang.org/x/mod v0.18.0 h1:5+9lSbEzPSdWkH32vYPBwEpX8KwDbM52Ud9xBUvNlb0=
2121
golang.org/x/mod v0.18.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
22-
golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo=
23-
golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM=
24-
golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ=
25-
golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
26-
golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s=
27-
golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
22+
golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI=
23+
golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs=
24+
golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=
25+
golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
26+
golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA=
27+
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
2828
golang.org/x/tools v0.22.0 h1:gqSGLZqv+AI9lIQzniJ0nZDRG5GBPsSi+DRNHWNz6yA=
2929
golang.org/x/tools v0.22.0/go.mod h1:aCwcsjqvq7Yqt6TNyX7QMU2enbQ/Gt0bo6krSeEri+c=
3030
rsc.io/binaryregexp v0.2.0 h1:HfqmD5MEmC0zvwBuF187nq9mdnXjXsSivRiXN7SmRkE=

Diff for: experimental/plugins/macro/macro.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ func (m *macro) compile(input string) error {
166166
}
167167

168168
func isValidMacroChar(c byte) bool {
169-
return c == '.' || c == '_' || c == '-' || (c >= '0' && c <= '9') || (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')
169+
return c == '[' || c == ']' || c == '.' || c == '_' || c == '-' || (c >= '0' && c <= '9') || (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')
170170
}
171171

172172
// String returns the original string

Diff for: experimental/plugins/macro/macro_test.go

+26-14
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,10 @@ func TestCompile(t *testing.T) {
6969
})
7070

7171
t.Run("malformed macros", func(t *testing.T) {
72-
for _, test := range []string{"%{tx.count", "%{{tx.count}", "%{{tx.{count}", "something %{tx.count"} {
72+
for _, test := range []string{
73+
"%{tx.count", "%{{tx.count}", "%{{tx.{count}", "something %{tx.count",
74+
"%{ARG_NAMES:/exec/", // Wildcard variable names are not supported
75+
} {
7376
t.Run(test, func(t *testing.T) {
7477
m := &macro{}
7578
err := m.compile(test)
@@ -118,19 +121,28 @@ func TestCompile(t *testing.T) {
118121
})
119122

120123
t.Run("valid macro", func(t *testing.T) {
121-
m := &macro{}
122-
err := m.compile("%{tx.count}")
123-
if err != nil {
124-
t.Fatalf("unexpected error: %s", err.Error())
125-
}
126-
127-
if want, have := 1, len(m.tokens); want != have {
128-
t.Fatalf("unexpected number of tokens: want %d, have %d", want, have)
129-
}
130-
131-
expectedMacro := macroToken{"tx.count", variables.TX, "count"}
132-
if want, have := m.tokens[0], expectedMacro; want != have {
133-
t.Errorf("unexpected token: want %v, have %v", want, have)
124+
type testCase struct {
125+
input string
126+
expectedMacro macroToken
127+
}
128+
for _, tc := range []testCase{
129+
{"%{tx.count}", macroToken{"tx.count", variables.TX, "count"}},
130+
{"%{ARGS.exec}", macroToken{"ARGS.exec", variables.Args, "exec"}},
131+
{"%{ARGS_GET.db[]}", macroToken{"ARGS_GET.db[]", variables.ArgsGet, "db[]"}},
132+
} {
133+
m := &macro{}
134+
err := m.compile(tc.input)
135+
if err != nil {
136+
t.Fatalf("unexpected error: %s", err.Error())
137+
}
138+
139+
if len(m.tokens) != 1 {
140+
t.Fatalf("unexpected number of tokens: want %d, have %d", 1, len(m.tokens))
141+
}
142+
143+
if m.tokens[0] != tc.expectedMacro {
144+
t.Errorf("unexpected token: want %v, have %v", tc.expectedMacro, m.tokens[0])
145+
}
134146
}
135147
})
136148

Diff for: go.mod

+6-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module github.com/corazawaf/coraza/v3
22

3-
go 1.22.3
3+
go 1.22.0
44

55
// Testing dependencies:
66
// - go-mockdns
@@ -22,24 +22,25 @@ require (
2222
github.com/corazawaf/libinjection-go v0.2.2
2323
github.com/foxcpp/go-mockdns v1.1.0
2424
github.com/jcchavezs/mergefs v0.1.0
25-
github.com/magefile/mage v1.15.1-0.20231118170541-2385abb49a1f
25+
github.com/magefile/mage v1.15.1-0.20241126214340-bdc92f694516
2626
github.com/mccutchen/go-httpbin/v2 v2.15.0
2727
github.com/petar-dambovaliev/aho-corasick v0.0.0-20240411101913-e07a1f0e8eb4
2828
github.com/tidwall/gjson v1.18.0
2929
github.com/valllabh/ocsf-schema-golang v1.0.3
30-
golang.org/x/net v0.31.0
31-
golang.org/x/sync v0.9.0
30+
golang.org/x/net v0.33.0
31+
golang.org/x/sync v0.10.0
3232
rsc.io/binaryregexp v0.2.0
3333
)
3434

3535
require (
3636
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
3737
github.com/miekg/dns v1.1.57 // indirect
3838
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
39+
github.com/stretchr/testify v1.10.0 // indirect
3940
github.com/tidwall/match v1.1.1 // indirect
4041
github.com/tidwall/pretty v1.2.1 // indirect
4142
golang.org/x/mod v0.18.0 // indirect
42-
golang.org/x/sys v0.27.0 // indirect
43+
golang.org/x/sys v0.28.0 // indirect
4344
golang.org/x/tools v0.22.0 // indirect
4445
google.golang.org/protobuf v1.34.2 // indirect
4546
)

Diff for: go.sum

+12-10
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
1212
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
1313
github.com/jcchavezs/mergefs v0.1.0 h1:7oteO7Ocl/fnfFMkoVLJxTveCjrsd//UB0j89xmnpec=
1414
github.com/jcchavezs/mergefs v0.1.0/go.mod h1:eRLTrsA+vFwQZ48hj8p8gki/5v9C2bFtHH5Mnn4bcGk=
15-
github.com/magefile/mage v1.15.1-0.20231118170541-2385abb49a1f h1:iiLWLoibjCL0XND6inF7bs2nc20lU/FYkiR//VIOLUc=
16-
github.com/magefile/mage v1.15.1-0.20231118170541-2385abb49a1f/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A=
15+
github.com/magefile/mage v1.15.1-0.20241126214340-bdc92f694516 h1:aAO0L0ulox6m/CLRYvJff+jWXYYCKGpEm3os7dM/Z+M=
16+
github.com/magefile/mage v1.15.1-0.20241126214340-bdc92f694516/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A=
1717
github.com/mccutchen/go-httpbin/v2 v2.15.0 h1:3b2s8LMRR2aFd+8U+1Bx2kdgHNQ5ZQkQOiW8e52Jj9A=
1818
github.com/mccutchen/go-httpbin/v2 v2.15.0/go.mod h1:GBy5I7XwZ4ZLhT3hcq39I4ikwN9x4QUt6EAxNiR8Jus=
1919
github.com/miekg/dns v1.1.57 h1:Jzi7ApEIzwEPLHWRcafCN9LZSBbqQpxjt/wpgvg7wcM=
@@ -22,8 +22,8 @@ github.com/petar-dambovaliev/aho-corasick v0.0.0-20240411101913-e07a1f0e8eb4 h1:
2222
github.com/petar-dambovaliev/aho-corasick v0.0.0-20240411101913-e07a1f0e8eb4/go.mod h1:EHPiTAKtiFmrMldLUNswFwfZ2eJIYBHktdaUTZxYWRw=
2323
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
2424
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
25-
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
26-
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
25+
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
26+
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
2727
github.com/tidwall/gjson v1.18.0 h1:FIDeeyB800efLX89e5a8Y0BNH+LOngJyGrIWxG2FKQY=
2828
github.com/tidwall/gjson v1.18.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk=
2929
github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA=
@@ -53,16 +53,18 @@ golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
5353
golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk=
5454
golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
5555
golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ=
56-
golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo=
57-
golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM=
56+
golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI=
57+
golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs=
58+
golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I=
59+
golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4=
5860
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
5961
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
6062
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
6163
golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
6264
golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
6365
golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
64-
golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ=
65-
golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
66+
golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=
67+
golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
6668
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
6769
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
6870
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
@@ -73,8 +75,8 @@ golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
7375
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
7476
golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
7577
golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
76-
golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s=
77-
golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
78+
golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA=
79+
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
7880
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
7981
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
8082
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=

Diff for: internal/corazawaf/rule_multiphase.go

+18
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,24 @@ func minPhase(v variables.RuleVariable) types.RulePhase {
4747
return types.PhaseResponseHeaders
4848
case variables.UniqueID:
4949
return types.PhaseRequestHeaders
50+
case variables.Time:
51+
return types.PhaseRequestHeaders
52+
case variables.TimeDay:
53+
return types.PhaseRequestHeaders
54+
case variables.TimeEpoch:
55+
return types.PhaseRequestHeaders
56+
case variables.TimeHour:
57+
return types.PhaseRequestHeaders
58+
case variables.TimeMin:
59+
return types.PhaseRequestHeaders
60+
case variables.TimeMon:
61+
return types.PhaseRequestHeaders
62+
case variables.TimeSec:
63+
return types.PhaseRequestHeaders
64+
case variables.TimeWday:
65+
return types.PhaseRequestHeaders
66+
case variables.TimeYear:
67+
return types.PhaseRequestHeaders
5068
case variables.ArgsCombinedSize:
5169
// Size changes between phase 1 and 2 so evaluate both times
5270
return types.PhaseRequestHeaders

0 commit comments

Comments
 (0)