github.com/crowdsecurity/crowdsec@v1.6.1/pkg/appsec/waf_helpers.go (about)

     1  package appsec
     2  
     3  import (
     4  	"github.com/crowdsecurity/crowdsec/pkg/types"
     5  )
     6  
     7  func GetOnLoadEnv(w *AppsecRuntimeConfig) map[string]interface{} {
     8  	return map[string]interface{}{
     9  		"RemoveInBandRuleByID":    w.DisableInBandRuleByID,
    10  		"RemoveInBandRuleByTag":   w.DisableInBandRuleByTag,
    11  		"RemoveInBandRuleByName":  w.DisableInBandRuleByName,
    12  		"RemoveOutBandRuleByID":   w.DisableOutBandRuleByID,
    13  		"RemoveOutBandRuleByTag":  w.DisableOutBandRuleByTag,
    14  		"RemoveOutBandRuleByName": w.DisableOutBandRuleByName,
    15  		"SetRemediationByTag":     w.SetActionByTag,
    16  		"SetRemediationByID":      w.SetActionByID,
    17  		"SetRemediationByName":    w.SetActionByName,
    18  	}
    19  }
    20  
    21  func GetPreEvalEnv(w *AppsecRuntimeConfig, request *ParsedRequest) map[string]interface{} {
    22  	return map[string]interface{}{
    23  		"IsInBand":                request.IsInBand,
    24  		"IsOutBand":               request.IsOutBand,
    25  		"req":                     request.HTTPRequest,
    26  		"RemoveInBandRuleByID":    w.RemoveInbandRuleByID,
    27  		"RemoveInBandRuleByName":  w.RemoveInbandRuleByName,
    28  		"RemoveInBandRuleByTag":   w.RemoveInbandRuleByTag,
    29  		"RemoveOutBandRuleByID":   w.RemoveOutbandRuleByID,
    30  		"RemoveOutBandRuleByTag":  w.RemoveOutbandRuleByTag,
    31  		"RemoveOutBandRuleByName": w.RemoveOutbandRuleByName,
    32  		"SetRemediationByTag":     w.SetActionByTag,
    33  		"SetRemediationByID":      w.SetActionByID,
    34  		"SetRemediationByName":    w.SetActionByName,
    35  	}
    36  }
    37  
    38  func GetPostEvalEnv(w *AppsecRuntimeConfig, request *ParsedRequest) map[string]interface{} {
    39  	return map[string]interface{}{
    40  		"IsInBand":    request.IsInBand,
    41  		"IsOutBand":   request.IsOutBand,
    42  		"DumpRequest": request.DumpRequest,
    43  		"req":         request.HTTPRequest,
    44  	}
    45  }
    46  
    47  func GetOnMatchEnv(w *AppsecRuntimeConfig, request *ParsedRequest, evt types.Event) map[string]interface{} {
    48  	return map[string]interface{}{
    49  		"evt":            evt,
    50  		"req":            request.HTTPRequest,
    51  		"IsInBand":       request.IsInBand,
    52  		"IsOutBand":      request.IsOutBand,
    53  		"SetRemediation": w.SetAction,
    54  		"SetReturnCode":  w.SetHTTPCode,
    55  		"CancelEvent":    w.CancelEvent,
    56  		"SendEvent":      w.SendEvent,
    57  		"CancelAlert":    w.CancelAlert,
    58  		"SendAlert":      w.SendAlert,
    59  		"DumpRequest":    request.DumpRequest,
    60  	}
    61  }