Versions in this module Expand all Collapse all v3 v3.0.1 Nov 3, 2022 Changes in this version + type BodyBuffer struct + func NewBodyBuffer(options types.BodyBufferOptions) *BodyBuffer + func (br *BodyBuffer) Reader() (io.Reader, error) + func (br *BodyBuffer) Reset() error + func (br *BodyBuffer) Size() int64 + func (br *BodyBuffer) Write(data []byte) (n int, err error) + type ErrorLogCallback = func(rule types.MatchedRule) + type Rule struct + Audit bool + Capture bool + Chain *Rule + Disruptive bool + DisruptiveStatus int + HasChain bool + Log bool + LogData macro.Macro + Msg macro.Macro + MultiMatch bool + ParentID_ int + func NewRule() *Rule + func (r *Rule) AddAction(name string, action rules.Action) error + func (r *Rule) AddTransformation(name string, t rules.Transformation) error + func (r *Rule) AddVariable(v variables.RuleVariable, key string, iscount bool) error + func (r *Rule) AddVariableNegation(v variables.RuleVariable, key string) error + func (r *Rule) ClearTransformations() + func (r *Rule) Evaluate(tx rules.TransactionState) []types.MatchData + func (r *Rule) ParentID() int + func (r *Rule) SetOperator(operator rules.Operator, functionName string, params string) + func (r *Rule) Status() int + type RuleGroup struct + func NewRuleGroup() RuleGroup + func (rg *RuleGroup) Add(rule *Rule) error + func (rg *RuleGroup) Clear() + func (rg *RuleGroup) Count() int + func (rg *RuleGroup) DeleteByID(id int) + func (rg *RuleGroup) Eval(phase types.RulePhase, tx *Transaction) bool + func (rg *RuleGroup) FindByID(id int) *Rule + func (rg *RuleGroup) FindByMsg(msg string) []*Rule + func (rg *RuleGroup) FindByTag(tag string) []*Rule + func (rg *RuleGroup) GetRules() []*Rule + type Transaction struct + AuditEngine types.AuditEngineStatus + AuditLogParts types.AuditLogParts + Capture bool + ForceRequestBodyVariable bool + HashEnforcement bool + HashEngine bool + LastPhase types.RulePhase + Logdata string + RequestBodyAccess bool + RequestBodyBuffer *BodyBuffer + RequestBodyLimit int64 + ResponseBodyAccess bool + ResponseBodyBuffer *BodyBuffer + ResponseBodyLimit int64 + RuleEngine types.RuleEngineStatus + Skip int + SkipAfter string + Timestamp int64 + WAF *WAF + func (tx *Transaction) AddArgument(orig string, key string, value string) + func (tx *Transaction) AddRequestHeader(key string, value string) + func (tx *Transaction) AddResponseHeader(key string, value string) + func (tx *Transaction) AuditLog() *loggers.AuditLog + func (tx *Transaction) CaptureField(index int, value string) + func (tx *Transaction) Capturing() bool + func (tx *Transaction) Close() error + func (tx *Transaction) Collection(idx variables.RuleVariable) collection.Collection + func (tx *Transaction) ContentInjection() bool + func (tx *Transaction) Debug() string + func (tx *Transaction) DebugLogger() loggers.DebugLogger + func (tx *Transaction) ExtractArguments(orig string, uri string) + func (tx *Transaction) GetField(rv ruleVariableParams) []types.MatchData + func (tx *Transaction) GetStopWatch() string + func (tx *Transaction) ID() string + func (tx *Transaction) Interrupt(interruption *types.Interruption) + func (tx *Transaction) Interrupted() bool + func (tx *Transaction) Interruption() *types.Interruption + func (tx *Transaction) IsProcessableResponseBody() bool + func (tx *Transaction) MatchRule(r *Rule, mds []types.MatchData) + func (tx *Transaction) MatchedRules() []types.MatchedRule + func (tx *Transaction) ParseRequestReader(data io.Reader) (*types.Interruption, error) + func (tx *Transaction) ProcessConnection(client string, cPort int, server string, sPort int) + func (tx *Transaction) ProcessLogging() + func (tx *Transaction) ProcessRequestBody() (*types.Interruption, error) + func (tx *Transaction) ProcessRequestHeaders() *types.Interruption + func (tx *Transaction) ProcessResponseBody() (*types.Interruption, error) + func (tx *Transaction) ProcessResponseHeaders(code int, proto string) *types.Interruption + func (tx *Transaction) ProcessURI(uri string, method string, httpVersion string) + func (tx *Transaction) RemoveRuleByID(id int) + func (tx *Transaction) RemoveRuleTargetByID(id int, variable variables.RuleVariable, key string) + func (tx *Transaction) RequestBodyReader() (io.Reader, error) + func (tx *Transaction) RequestBodyWriter() io.Writer + func (tx *Transaction) ResponseBodyReader() (io.Reader, error) + func (tx *Transaction) ResponseBodyWriter() io.Writer + func (tx *Transaction) String() string + func (tx *Transaction) Variables() rules.TransactionVariables + type TransactionVariables struct + func NewTransactionVariables() *TransactionVariables + func (v *TransactionVariables) Args() *collection.Proxy + func (v *TransactionVariables) ArgsCombinedSize() *collection.SizeProxy + func (v *TransactionVariables) ArgsGet() *collection.Map + func (v *TransactionVariables) ArgsGetNames() *collection.TranslationProxy + func (v *TransactionVariables) ArgsNames() *collection.TranslationProxy + func (v *TransactionVariables) ArgsPath() *collection.Map + func (v *TransactionVariables) ArgsPost() *collection.Map + func (v *TransactionVariables) ArgsPostNames() *collection.TranslationProxy + func (v *TransactionVariables) AuthType() *collection.Simple + func (v *TransactionVariables) Duration() *collection.Simple + func (v *TransactionVariables) Env() *collection.Map + func (v *TransactionVariables) Files() *collection.Map + func (v *TransactionVariables) FilesCombinedSize() *collection.Simple + func (v *TransactionVariables) FilesNames() *collection.Map + func (v *TransactionVariables) FilesSizes() *collection.Map + func (v *TransactionVariables) FilesTmpContent() *collection.Map + func (v *TransactionVariables) FilesTmpNames() *collection.Map + func (v *TransactionVariables) FullRequest() *collection.Simple + func (v *TransactionVariables) FullRequestLength() *collection.Simple + func (v *TransactionVariables) Geo() *collection.Map + func (v *TransactionVariables) HighestSeverity() *collection.Simple + func (v *TransactionVariables) IP() *collection.Map + func (v *TransactionVariables) InboundDataError() *collection.Simple + func (v *TransactionVariables) InboundErrorData() *collection.Simple + func (v *TransactionVariables) MatchedVar() *collection.Simple + func (v *TransactionVariables) MatchedVarName() *collection.Simple + func (v *TransactionVariables) MatchedVars() *collection.Map + func (v *TransactionVariables) MatchedVarsNames() *collection.Map + func (v *TransactionVariables) MultipartBoundaryQuoted() *collection.Simple + func (v *TransactionVariables) MultipartBoundaryWhitespace() *collection.Simple + func (v *TransactionVariables) MultipartCrlfLfLines() *collection.Simple + func (v *TransactionVariables) MultipartDataAfter() *collection.Simple + func (v *TransactionVariables) MultipartDataBefore() *collection.Simple + func (v *TransactionVariables) MultipartFileLimitExceeded() *collection.Simple + func (v *TransactionVariables) MultipartFilename() *collection.Map + func (v *TransactionVariables) MultipartHeaderFolding() *collection.Simple + func (v *TransactionVariables) MultipartInvalidHeaderFolding() *collection.Simple + func (v *TransactionVariables) MultipartInvalidPart() *collection.Simple + func (v *TransactionVariables) MultipartInvalidQuoting() *collection.Simple + func (v *TransactionVariables) MultipartLfLine() *collection.Simple + func (v *TransactionVariables) MultipartMissingSemicolon() *collection.Simple + func (v *TransactionVariables) MultipartName() *collection.Map + func (v *TransactionVariables) MultipartPartHeaders() *collection.Map + func (v *TransactionVariables) MultipartStrictError() *collection.Simple + func (v *TransactionVariables) MultipartUnmatchedBoundary() *collection.Simple + func (v *TransactionVariables) OutboundDataError() *collection.Simple + func (v *TransactionVariables) PathInfo() *collection.Simple + func (v *TransactionVariables) QueryString() *collection.Simple + func (v *TransactionVariables) RemoteAddr() *collection.Simple + func (v *TransactionVariables) RemoteHost() *collection.Simple + func (v *TransactionVariables) RemotePort() *collection.Simple + func (v *TransactionVariables) RequestBasename() *collection.Simple + func (v *TransactionVariables) RequestBody() *collection.Simple + func (v *TransactionVariables) RequestBodyError() *collection.Simple + func (v *TransactionVariables) RequestBodyErrorMsg() *collection.Simple + func (v *TransactionVariables) RequestBodyLength() *collection.Simple + func (v *TransactionVariables) RequestBodyProcessor() *collection.Simple + func (v *TransactionVariables) RequestBodyProcessorError() *collection.Simple + func (v *TransactionVariables) RequestBodyProcessorErrorMsg() *collection.Simple + func (v *TransactionVariables) RequestCookies() *collection.Map + func (v *TransactionVariables) RequestCookiesNames() *collection.Map + func (v *TransactionVariables) RequestFilename() *collection.Simple + func (v *TransactionVariables) RequestHeaders() *collection.Map + func (v *TransactionVariables) RequestHeadersNames() *collection.Map + func (v *TransactionVariables) RequestLine() *collection.Simple + func (v *TransactionVariables) RequestMethod() *collection.Simple + func (v *TransactionVariables) RequestProtocol() *collection.Simple + func (v *TransactionVariables) RequestURI() *collection.Simple + func (v *TransactionVariables) RequestURIRaw() *collection.Simple + func (v *TransactionVariables) RequestXML() *collection.Map + func (v *TransactionVariables) ResponseBody() *collection.Simple + func (v *TransactionVariables) ResponseContentLength() *collection.Simple + func (v *TransactionVariables) ResponseContentType() *collection.Simple + func (v *TransactionVariables) ResponseHeaders() *collection.Map + func (v *TransactionVariables) ResponseHeadersNames() *collection.Map + func (v *TransactionVariables) ResponseProtocol() *collection.Simple + func (v *TransactionVariables) ResponseStatus() *collection.Simple + func (v *TransactionVariables) ResponseXML() *collection.Map + func (v *TransactionVariables) Rule() *collection.Map + func (v *TransactionVariables) ServerAddr() *collection.Simple + func (v *TransactionVariables) ServerName() *collection.Simple + func (v *TransactionVariables) ServerPort() *collection.Simple + func (v *TransactionVariables) SessionID() *collection.Simple + func (v *TransactionVariables) StatusLine() *collection.Simple + func (v *TransactionVariables) TX() *collection.Map + func (v *TransactionVariables) UniqueID() *collection.Simple + func (v *TransactionVariables) UrlencodedError() *collection.Simple + func (v *TransactionVariables) UserID() *collection.Simple + func (v *TransactionVariables) XML() *collection.Map + type WAF struct + AbortOnRemoteRulesFail bool + ArgumentSeparator string + AuditEngine types.AuditEngineStatus + AuditLogParts types.AuditLogParts + AuditLogRelevantStatus *regexp.Regexp + AuditLogWriter loggers.LogWriter + ComponentNames []string + ContentInjection bool + DataDir string + ErrorLogCb ErrorLogCallback + Logger loggers.DebugLogger + ProducerConnector string + ProducerConnectorVersion string + RejectOnRequestBodyLimit bool + RejectOnResponseBodyLimit bool + RequestBodyAccess bool + RequestBodyInMemoryLimit int64 + RequestBodyLimit int64 + RequestBodyLimitAction types.RequestBodyLimitAction + RequestBodyNoFilesLimit int64 + ResponseBodyAccess bool + ResponseBodyLimit int64 + ResponseBodyMimeTypes []string + RuleEngine types.RuleEngineStatus + Rules RuleGroup + SensorID string + ServerSignature string + TmpDir string + UploadDir string + UploadFileLimit int + UploadFileMode fs.FileMode + UploadKeepFiles bool + WebAppID string + func NewWAF() *WAF + func (w *WAF) NewTransaction() *Transaction + func (w *WAF) NewTransactionWithID(id string) *Transaction + func (w *WAF) SetDebugLogLevel(lvl int) error + func (w *WAF) SetDebugLogPath(path string) error + func (w *WAF) SetErrorLogCb(cb ErrorLogCallback)