Details
Summary
Total requests sent: {{.TotalSent}}
Number of blocked requests: {{.BlockedRequestsNumber}}
Number of passed requests: {{.BypassedRequestsNumber}}
{{if not .IgnoreUnresolved}}
Number of unresolved requests: {{.UnresolvedRequestsNumber}}
{{end}}
Number of failed requests: {{.FailedRequestsNumber}}
{{$length := len .TruePositiveTests.SummaryTable}}{{if ne $length 0}}
True-positive tests
Test set
Test case
Percentage
Blocked
Bypassed
{{if not .IgnoreUnresolved}}
Unresolved
{{end}}
Sent
Failed
{{range $testSetName, $testSetSum := .TruePositiveTests.SummaryTable}}
{{range $row := $testSetSum.TestCases}}
{{$row.TestSet}}
{{$row.TestCase}}
{{printf "%.2f%%" $row.Percentage}}
{{$row.Blocked}}
{{$row.Bypassed}}
{{if not $.IgnoreUnresolved}}
{{$row.Unresolved}}
{{end}}
{{$row.Sent}}
{{$row.Failed}}
{{end}}
{{$length := len $.TruePositiveTests.SummaryTable}}{{if gt $length 1}}
Summary for {{$testSetName}}
{{printf "%.2f%%" $testSetSum.Percentage}}
{{$testSetSum.Blocked}}
{{$testSetSum.Bypassed}}
{{if not $.IgnoreUnresolved}}
{{$testSetSum.Unresolved}}
{{end}}
{{$testSetSum.Sent}}
{{$testSetSum.Failed}}
{{end}}
{{end}}
{{$length := len .TruePositiveTests.SummaryTable}}{{if gt $length 1}}
Summary for true-positive tests
{{printf "%.2f%%" .TruePositiveTests.Percentage}}
{{.TruePositiveTests.BlockedRequestsNumber}}
{{.TruePositiveTests.BypassedRequestsNumber}}
{{if not .IgnoreUnresolved}}
{{.TruePositiveTests.UnresolvedRequestsNumber}}
{{end}}
{{.TruePositiveTests.TotalSent}}
{{.TruePositiveTests.FailedRequestsNumber}}
{{end}}
{{end}}
{{$length := len .TrueNegativeTests.SummaryTable}}{{if ne $length 0}}
True-negative tests
Test set
Test case
Percentage
Blocked
Bypassed
{{if not .IgnoreUnresolved}}
Unresolved
{{end}}
Sent
Failed
{{range $testSetName, $testSetSum := .TrueNegativeTests.SummaryTable}}
{{range $row := $testSetSum.TestCases}}
{{$row.TestSet}}
{{$row.TestCase}}
{{printf "%.2f%%" $row.Percentage}}
{{$row.Blocked}}
{{$row.Bypassed}}
{{if not $.IgnoreUnresolved}}
{{$row.Unresolved}}
{{end}}
{{$row.Sent}}
{{$row.Failed}}
{{end}}
{{$length := len $.TrueNegativeTests.SummaryTable}}{{if gt $length 1}}
Summary for {{$testSetName}}
{{printf "%.2f%%" $testSetSum.Percentage}}
{{$testSetSum.Blocked}}
{{$testSetSum.Bypassed}}
{{if not $.IgnoreUnresolved}}
{{$testSetSum.Unresolved}}
{{end}}
{{$testSetSum.Sent}}
{{$testSetSum.Failed}}
{{end}}
{{end}}
{{$length := len .TrueNegativeTests.SummaryTable}}{{if gt $length 1}}
Summary for false-positive tests
{{printf "%.2f%%" .TrueNegativeTests.Percentage}}
{{.TrueNegativeTests.BlockedRequestsNumber}}
{{.TrueNegativeTests.BypassedRequestsNumber}}
{{if not .IgnoreUnresolved}}
{{.TrueNegativeTests.UnresolvedRequestsNumber}}
{{end}}
{{.TrueNegativeTests.TotalSent}}
{{.TrueNegativeTests.FailedRequestsNumber}}
{{end}}
{{end}}
{{if $.ScannedPaths}}
Scanned paths
{{$length := len $.ScannedPaths}}{{$length}} endpoints were scanned in total.
{{range $row := $.ScannedPaths}}
{{$row.Method}} {{$row.Path}}
{{end}}
{{end}}
True Negative Tests
{{.TrueNegativeTests.BypassedRequestsNumber}} true-negative requests identified as bypassed (test passed, good behavior)
{{.TrueNegativeTests.BlockedRequestsNumber}} true-negative requests identified as blocked (test failed, bad behavior)
{{if .IncludePayloads}}
{{if .TrueNegativeTests.BlockedRequestsNumber}}
Payload
Test case
Encoder
Placeholder
Status
{{range $payload, $codeMap := .TrueNegativeTests.Blocked}}
{{range $code, $testDetails := $codeMap}}
{{$encoders := MapKeysToString $testDetails.Encoders ", "}}
{{$placeholders := MapKeysToString $testDetails.Placeholders ", "}}
{{$payload}}
{{$testDetails.TestCase}}
{{$encoders}}
{{$placeholders}}
{{$code}}
{{end}}
{{end}}
{{end}}
{{end}}
{{if .TrueNegativeTests.UnresolvedRequestsNumber}}
{{.TrueNegativeTests.UnresolvedRequestsNumber}} true positive requests identified as unresolved
{{if .IncludePayloads}}
Payload
Test case
Encoder
Placeholder
Status
{{range $payload, $codeMap := .TrueNegativeTests.Unresolved}}
{{range $code, $testDetails := $codeMap}}
{{$encoders := MapKeysToString $testDetails.Encoders ", "}}
{{$placeholders := MapKeysToString $testDetails.Placeholders ", "}}
{{$payload}}
{{$testDetails.TestCase}}
{{$encoders}}
{{$placeholders}}
{{$code}}
{{end}}
{{end}}
{{end}}
{{end}}
{{if .TrueNegativeTests.FailedRequestsNumber}}
{{.TrueNegativeTests.FailedRequestsNumber}} true positive requests are failed
{{if .IncludePayloads}}
Payload
Test case
Encoder
Placeholder
{{range $row := .TrueNegativeTests.Failed}}
{{$row.Payload}}
{{$row.TestCase}}
{{$row.Encoder}}
{{$row.Placeholder}}
{{$length := len $row.Reason}}{{if ne $length 0}}
{{$escapedReason := HTMLEscapeSlice $row.Reason}}
{{end}}
{{end}}
{{end}}
{{end}}
Bypasses in Details
{{.TruePositiveTests.BypassedRequestsNumber}} malicious requests have bypassed the security solution
{{if .IncludePayloads}}
{{if .TruePositiveTests.BypassedRequestsNumber}}
Payload
Test case
Encoder
Placeholder
Status
{{range $paths, $pathMap := .TruePositiveTests.Bypassed}}
{{$length := len $paths}}
{{if ne $length 0}}
{{$splitPaths := StringsSplit $paths "\n"}}
{{$escapedSP := HTMLEscapeSlice $splitPaths}}
{{end}}
{{range $payload, $codeMap := $pathMap}}
{{range $code, $testDetails := $codeMap}}
{{$encoders := MapKeysToString $testDetails.Encoders ", "}}
{{$placeholders := MapKeysToString $testDetails.Placeholders ", "}}
{{$payload}}
{{$testDetails.TestCase}}
{{$encoders}}
{{$placeholders}}
{{$code}}
{{end}}
{{end}}
{{end}}
{{end}}
{{end}}
{{if .TruePositiveTests.UnresolvedRequestsNumber}}
Unresolved requests in Details
{{.TruePositiveTests.UnresolvedRequestsNumber}} requests identified as blocked and passed or as not-blocked and not-passed
{{if .IncludePayloads}}
Payload
Test case
Encoder
Placeholder
Status
{{range $payload, $codeMap := .TruePositiveTests.Unresolved}}
{{range $code, $testDetails := $codeMap}}
{{$encoders := MapKeysToString $testDetails.Encoders ", "}}
{{$placeholders := MapKeysToString $testDetails.Placeholders ", "}}
{{$payload}}
{{$testDetails.TestCase}}
{{$encoders}}
{{$placeholders}}
{{$code}}
{{end}}
{{end}}
{{end}}
{{end}}
{{if .TruePositiveTests.FailedRequestsNumber}}
Failed requests in Details
{{.TruePositiveTests.FailedRequestsNumber}} requests are failed
{{if .IncludePayloads}}
Payload
Test case
Encoder
Placeholder
{{range $row := .TruePositiveTests.Failed}}
{{$row.Payload}}
{{$row.TestCase}}
{{$row.Encoder}}
{{$row.Placeholder}}
{{$length := len $row.Reason}}{{if ne $length 0}}
{{$escapedReason := HTMLEscapeSlice $row.Reason}}
{{end}}
{{end}}
{{end}}
{{end}}