X7ROOT File Manager
Current Path:
/opt/cloudlinux/venv/lib/python3.11/site-packages/sentry_sdk
opt
/
cloudlinux
/
venv
/
lib
/
python3.11
/
site-packages
/
sentry_sdk
/
??
..
??
__init__.py
(1.03 KB)
??
__pycache__
??
_compat.py
(2.73 KB)
??
_functools.py
(4.84 KB)
??
_lru_cache.py
(5.26 KB)
??
_queue.py
(11 KB)
??
_types.py
(2.19 KB)
??
_werkzeug.py
(3.7 KB)
??
api.py
(6.05 KB)
??
attachments.py
(1.77 KB)
??
client.py
(22.35 KB)
??
consts.py
(8.49 KB)
??
crons
??
debug.py
(1.11 KB)
??
envelope.py
(9.37 KB)
??
hub.py
(26.42 KB)
??
integrations
??
monitor.py
(2.97 KB)
??
profiler.py
(33.18 KB)
??
py.typed
(0 B)
??
scope.py
(24.26 KB)
??
scrubber.py
(3.8 KB)
??
serializer.py
(12.97 KB)
??
session.py
(5.43 KB)
??
sessions.py
(5.76 KB)
??
tracing.py
(29.04 KB)
??
tracing_utils.py
(12 KB)
??
tracing_utils_py2.py
(1.21 KB)
??
tracing_utils_py3.py
(2.1 KB)
??
transport.py
(18.13 KB)
??
utils.py
(45.58 KB)
??
worker.py
(4.15 KB)
Editing: scrubber.py
from sentry_sdk.utils import ( capture_internal_exceptions, AnnotatedValue, iter_event_frames, ) from sentry_sdk._compat import string_types from sentry_sdk._types import TYPE_CHECKING if TYPE_CHECKING: from sentry_sdk._types import Event from typing import Any from typing import Dict from typing import List from typing import Optional DEFAULT_DENYLIST = [ # stolen from relay "password", "passwd", "secret", "api_key", "apikey", "auth", "credentials", "mysql_pwd", "privatekey", "private_key", "token", "ip_address", "session", # django "csrftoken", "sessionid", # wsgi "remote_addr", "x_csrftoken", "x_forwarded_for", "set_cookie", "cookie", "authorization", "x_api_key", "x_forwarded_for", "x_real_ip", # other common names used in the wild "aiohttp_session", # aiohttp "connect.sid", # Express "csrf_token", # Pyramid "csrf", # (this is a cookie name used in accepted answers on stack overflow) "_csrf", # Express "_csrf_token", # Bottle "PHPSESSID", # PHP "_session", # Sanic "symfony", # Symfony "user_session", # Vue "_xsrf", # Tornado "XSRF-TOKEN", # Angular, Laravel ] class EventScrubber(object): def __init__(self, denylist=None): # type: (Optional[List[str]]) -> None self.denylist = DEFAULT_DENYLIST if denylist is None else denylist self.denylist = [x.lower() for x in self.denylist] def scrub_dict(self, d): # type: (Dict[str, Any]) -> None if not isinstance(d, dict): return for k in d.keys(): if isinstance(k, string_types) and k.lower() in self.denylist: d[k] = AnnotatedValue.substituted_because_contains_sensitive_data() def scrub_request(self, event): # type: (Event) -> None with capture_internal_exceptions(): if "request" in event: if "headers" in event["request"]: self.scrub_dict(event["request"]["headers"]) if "cookies" in event["request"]: self.scrub_dict(event["request"]["cookies"]) if "data" in event["request"]: self.scrub_dict(event["request"]["data"]) def scrub_extra(self, event): # type: (Event) -> None with capture_internal_exceptions(): if "extra" in event: self.scrub_dict(event["extra"]) def scrub_user(self, event): # type: (Event) -> None with capture_internal_exceptions(): if "user" in event: self.scrub_dict(event["user"]) def scrub_breadcrumbs(self, event): # type: (Event) -> None with capture_internal_exceptions(): if "breadcrumbs" in event: if "values" in event["breadcrumbs"]: for value in event["breadcrumbs"]["values"]: if "data" in value: self.scrub_dict(value["data"]) def scrub_frames(self, event): # type: (Event) -> None with capture_internal_exceptions(): for frame in iter_event_frames(event): if "vars" in frame: self.scrub_dict(frame["vars"]) def scrub_spans(self, event): # type: (Event) -> None with capture_internal_exceptions(): if "spans" in event: for span in event["spans"]: if "data" in span: self.scrub_dict(span["data"]) def scrub_event(self, event): # type: (Event) -> None self.scrub_request(event) self.scrub_extra(event) self.scrub_user(event) self.scrub_breadcrumbs(event) self.scrub_frames(event) self.scrub_spans(event)
Upload File
Create Folder