Summary
The app should redact IPTV credentials before writing URLs, API requests, playback URLs, or raw provider responses to logs/debug output.
Xtream-style APIs commonly include credentials in query parameters or path segments, for example:
player_api.php?username=<user>&password=<pass>
/live/<user>/<pass>/<stream_id>.ts
/movie/<user>/<pass>/<stream_id>.mp4
/series/<user>/<pass>/<stream_id>.mkv
If these values are logged, credentials can be exposed through local device logs, screenshots, crash reports, support bundles, CI logs, or developer console output.
Proposed behavior
- Do not log full provider URLs containing credentials.
- Redact
username and password query parameters before logging.
- Redact Xtream path credentials before logging playback URLs.
- Avoid logging raw provider response bodies unless explicitly needed for debugging and safely redacted.
- Ensure release builds do not emit credential-bearing debug output.
Suggested redaction examples
player_api.php?username=<redacted>&password=<redacted>
/live/<user>/<pass>/123.ts
/movie/<user>/<pass>/456.mp4
/series/<user>/<pass>/789.mkv
Suggested implementation direction
Add a small shared helper per client/platform:
redactCredentials(input: String) -> String
It should handle at least:
username=<value>
password=<value>
/live/{username}/{password}/{stream}
/movie/{username}/{password}/{stream}
/series/{username}/{password}/{stream}
Then require all logging/debug output that may include provider URLs or API responses to pass through the redaction helper first.
Acceptance criteria
- No log/debug statement prints raw IPTV username/password values.
- API URLs are redacted before logging.
- Playback URLs are redacted before logging.
- Raw JSON/body logging is removed, gated, or redacted.
- A basic unit test validates that sample Xtream URLs are redacted correctly.
Summary
The app should redact IPTV credentials before writing URLs, API requests, playback URLs, or raw provider responses to logs/debug output.
Xtream-style APIs commonly include credentials in query parameters or path segments, for example:
If these values are logged, credentials can be exposed through local device logs, screenshots, crash reports, support bundles, CI logs, or developer console output.
Proposed behavior
usernameandpasswordquery parameters before logging.Suggested redaction examples
Suggested implementation direction
Add a small shared helper per client/platform:
It should handle at least:
username=<value>password=<value>/live/{username}/{password}/{stream}/movie/{username}/{password}/{stream}/series/{username}/{password}/{stream}Then require all logging/debug output that may include provider URLs or API responses to pass through the redaction helper first.
Acceptance criteria