Skip to content

Commit e6897fa

Browse files
committed
Drop scrubbed user IP addresses
1 parent 4a56e34 commit e6897fa

2 files changed

Lines changed: 22 additions & 1 deletion

File tree

sentry_sdk/scrubber.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,10 @@ def scrub_extra(self, event: "Event") -> None:
137137
def scrub_user(self, event: "Event") -> None:
138138
with capture_internal_exceptions():
139139
if "user" in event:
140-
self.scrub_dict(event["user"])
140+
user = event["user"]
141+
if isinstance(user, dict) and "ip_address" in self.denylist:
142+
user.pop("ip_address", None)
143+
self.scrub_dict(user)
141144

142145
def scrub_breadcrumbs(self, event: "Event") -> None:
143146
with capture_internal_exceptions():

tests/test_scrubber.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,24 @@ def test_ip_address_not_scrubbed_when_pii_enabled(sentry_init, capture_events):
8989
}
9090

9191

92+
def test_user_ip_address_removed_when_scrubbed(sentry_init, capture_events):
93+
sentry_init()
94+
events = capture_events()
95+
96+
try:
97+
1 / 0
98+
except ZeroDivisionError:
99+
ev, _hint = event_from_exception(sys.exc_info())
100+
ev["user"] = {"id": "42", "ip_address": "127.0.0.1"}
101+
102+
capture_event(ev)
103+
104+
(event,) = events
105+
106+
assert event["user"] == {"id": "42"}
107+
assert "user" not in event.get("_meta", {})
108+
109+
92110
def test_stack_var_scrubbing(sentry_init, capture_events):
93111
sentry_init()
94112
events = capture_events()

0 commit comments

Comments
 (0)