Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AuditLogConfig ¶
type AuditLogConfig interface { // LogRelevantOnly enables audit logging only for relevant events. LogRelevantOnly() AuditLogConfig // WithParts configures the parts of the request/response to be logged. WithParts(parts types.AuditLogParts) AuditLogConfig // WithLogger configures the loggers.LogWriter to write logs to. WithLogger(logger loggers.LogWriter) AuditLogConfig }
AuditLogConfig controls audit logging.
func NewAuditLogConfig ¶
func NewAuditLogConfig() AuditLogConfig
NewAuditLogConfig returns a new AuditLogConfig with the default settings.
type RequestBodyConfig ¶
type RequestBodyConfig interface { // WithLimit sets the maximum number of bytes that can be read from the request body. Bytes beyond that set // in WithInMemoryLimit will be buffered to disk. WithLimit(limit int) RequestBodyConfig // WithInMemoryLimit sets the maximum number of bytes that can be read from the request body and buffered in memory. WithInMemoryLimit(limit int) RequestBodyConfig }
RequestBodyConfig controls access to the request body.
func NewRequestBodyConfig ¶
func NewRequestBodyConfig() RequestBodyConfig
NewRequestBodyConfig returns a new RequestBodyConfig with the default settings.
type ResponseBodyConfig ¶
type ResponseBodyConfig interface { // WithLimit sets the maximum number of bytes that can be read from the response body and buffered in memory. WithLimit(limit int) ResponseBodyConfig // WithMimeTypes sets the mime types of responses that will be processed. WithMimeTypes(mimeTypes []string) ResponseBodyConfig }
ResponseBodyConfig controls access to the response body.
func NewResponseBodyConfig ¶
func NewResponseBodyConfig() ResponseBodyConfig
NewResponseBodyConfig returns a new ResponseBodyConfig with the default settings.
type WAF ¶
type WAF interface { // NewTransaction Creates a new initialized transaction for this WAF instance NewTransaction() types.Transaction NewTransactionWithID(id string) types.Transaction }
WAF instance is used to store configurations and rules Every web application should have a different WAF instance, but you can share an instance if you are ok with sharing configurations, rules and logging. Transactions and SecLang parser requires a WAF instance You can use as many WAF instances as you want, and they are concurrent safe
type WAFConfig ¶
type WAFConfig interface { // WithRule adds a rule to the WAF. WithRule(rule *corazawaf.Rule) WAFConfig // WithDirectives parses the directives from the given string and adds them to the WAF. WithDirectives(directives string) WAFConfig // WithDirectivesFromFile parses the directives from the given file and adds them to the WAF. WithDirectivesFromFile(path string) WAFConfig // WithAuditLog configures audit logging. WithAuditLog(config AuditLogConfig) WAFConfig // WithContentInjection enables content injection. WithContentInjection() WAFConfig // WithRequestBodyAccess configures access to the request body. WithRequestBodyAccess(config RequestBodyConfig) WAFConfig // WithResponseBodyAccess configures access to the response body. WithResponseBodyAccess(config ResponseBodyConfig) WAFConfig // WithDebugLogger configures a debug logger. WithDebugLogger(logger loggers.DebugLogger) WAFConfig // WithErrorLogger configures an error logger. WithErrorLogger(logger corazawaf.ErrorLogCallback) WAFConfig // WithRootFS configures the root file system. WithRootFS(fs fs.FS) WAFConfig }
WAFConfig controls the behavior of the WAF.
Note: WAFConfig is immutable. Each WithXXX function returjns a new instance including the corresponding change.
func NewWAFConfig ¶
func NewWAFConfig() WAFConfig
NewWAFConfig creates a new WAFConfig with the default settings.
Directories ¶
Path | Synopsis |
---|---|
Package http allows populating a coraza transaction with information from an HTTP Request.
|
Package http allows populating a coraza transaction with information from an HTTP Request. |
internal
|
|
Package loggers implements a set of log formatters and writers for audit logging.
|
Package loggers implements a set of log formatters and writers for audit logging. |
variables
Package variables contains the representation of the variables used in the rules Variables are created as bytes and they have a string representation
|
Package variables contains the representation of the variables used in the rules Variables are created as bytes and they have a string representation |