Skip to content

Behavioral Analysis Decorators

Behavioral analysis decorators provide advanced monitoring capabilities to detect suspicious usage patterns and potential abuse.


Usage Monitoring

from djangoapi_guard import SecurityDecorator
from django.http import JsonResponse

guard_deco = SecurityDecorator(config)

@guard_deco.usage_monitor(max_calls=10, window=3600, action="ban")
def sensitive_endpoint(request):
    return JsonResponse({"data": "sensitive information"})

Return Pattern Monitoring

@guard_deco.return_monitor("win", max_occurrences=2, window=86400, action="ban")
def lottery_endpoint(request):
    import random
    result = random.choice(["win", "lose", "lose", "lose"])
    return JsonResponse({"result": result})

Pattern formats supported:

  • Simple string: "win", "success", "rare_item"
  • JSON path: "json:result.status==win"
  • Regex: "regex:win|victory|success"
  • Status code: "status:200"

Action Types

  • ban: Ban the IP address
  • alert: Send an alert notification
  • throttle: Apply rate limiting
  • log: Only log incidents for analysis

Complex Behavioral Analysis

from djangoapi_guard import BehaviorRule

rules = [
    BehaviorRule("usage", threshold=20, window=3600, action="alert"),
    BehaviorRule("return_pattern", threshold=5, pattern="win", window=86400, action="ban"),
    BehaviorRule("frequency", threshold=60, window=300, action="throttle")
]

@guard_deco.behavior_analysis(rules)
def casino_game(request):
    return JsonResponse({"result": "win", "amount": 500})

Next Steps

For complete API reference, see the Behavioral Analysis API Documentation.