Skip to content

Commit 67e0638

Browse files
committed
try sending along context, still send attack even if cotnext unavailabel
1 parent bbeb7f2 commit 67e0638

1 file changed

Lines changed: 15 additions & 9 deletions

File tree

aikido_zen/background_process/cloud_connection_manager/on_detected_attack.py

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ def on_detected_attack(connection_manager, attack, context, blocked, stack):
1414
"""
1515
if not connection_manager.token:
1616
return
17-
# Modify attack so we can send it out :
17+
1818
try:
1919
attack["user"] = getattr(context, "user", None)
2020
attack["payload"] = json.dumps(attack["payload"])[:4096]
@@ -27,14 +27,7 @@ def on_detected_attack(connection_manager, attack, context, blocked, stack):
2727
"time": get_unixtime_ms(),
2828
"agent": connection_manager.get_manager_info(),
2929
"attack": attack,
30-
"request": {
31-
"method": context.method,
32-
"url": context.url,
33-
"ipAddress": context.remote_address,
34-
"userAgent": context.get_user_agent(),
35-
"source": context.source,
36-
"route": context.route,
37-
},
30+
"request": extract_request_if_possible(context),
3831
}
3932
logger.debug(serialize_to_json(payload))
4033
result = connection_manager.api.report(
@@ -46,3 +39,16 @@ def on_detected_attack(connection_manager, attack, context, blocked, stack):
4639
except Exception as e:
4740
logger.debug(e)
4841
logger.info("Failed to report an attack")
42+
43+
44+
def extract_request_if_possible(context):
45+
if not context:
46+
return None
47+
return {
48+
"method": getattr(context, "method", None),
49+
"url": getattr(context, "url", None),
50+
"ipAddress": getattr(context, "remote_address", None),
51+
"source": getattr(context, "source", None),
52+
"route": getattr(context, "route", None),
53+
"userAgent": context.get_user_agent(),
54+
}

0 commit comments

Comments
 (0)