getsentry / getsentry/sentry-react-native

Mobile App Session Replay: Ability to disable or mask touch capture per screen

Open
#6,299 8 comments 0 reactions 0 assignees View on GitHub
Feature React-Native Replays Security
Dominant language
TypeScript
Stars
1.8k
Forks
367
Avg merge
1d 6h
Merged PRs (30d)
94

Description

### Problem Statement

Currently, mobile Session Replay captures raw tap and drag gesture coordinates globally via the native touch tracker. While this is incredibly useful for debugging user flows, it introduces security/privacy risk on sensitive screens. Even when the mask strategy is strict and the keyboard doesn't show, the global touch overlay still records and displays the exact coordinates of user taps/drags over the relay. If a user is typing on a standard QWERTY keyboard or a fixed-layout numeric keypad, an observer can easily deduce inputs (passwords, PINs, or PII etc) just by looking at the tap indicator positions on the masked replay.

I would like to see the ability to drop touches for components/views.

Image

### Solution Brainstorm

- Extend `Sentry.Mask` with a prop to disable touches? Or maybe a new wrapper `Sentry.MaskTouches`?
- Failing that, we'd be better off with a global way to pause/unpause or just don't record any at all

### Are you willing to submit a PR?

None

Contributor guide

Open the contributing guide

Research direction

Start by tracing the native touch tracker and the existing Sentry.Mask API. Compare the proposed per-component masking, a Sentry.MaskTouches wrapper, and global pause options. Done means sensitive screens or components no longer expose tap and drag coordinates in Session Replay, with behavior verified on the affected mobile platforms.

Written by the indexing model from the issue text.

Assessment

Tech stack
react-native, typescript
Domain
mobile-dev, security
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.