Skip to content

Security

LCTester drives a browser against your site with your test credentials, so we treat isolation and secrets seriously.

Tenant isolation

Every team’s data is separated by Postgres row-level security, enforced in the database itself and not only in application code.

Isolated runs

Each run happens in its own isolated container. Traffic leaves through an egress proxy that blocks private networks and cloud metadata addresses, so a run cannot be used to reach internal systems.

Saved logins

Test account credentials are sealed with public-key encryption when you save them. Only the run service can open them, and they are released only to your site’s own origin.

AI model access

Model calls go through our gateway, which applies spend limits so a runaway test cannot generate unbounded cost.

Web application

The app uses a strict content security policy, so text captured from a site under test cannot run as code in the dashboard. Webhooks and signed CI requests use HMAC signatures with timestamps.

Deleting data

Deleting a project, a team or an account removes the stored files (recordings, screenshots and uploads) as well as the database records.

Responsible disclosure

Found a vulnerability? Email security@[your-domain] with the details and steps to reproduce. Please give us reasonable time to fix it before sharing it publicly, and do not access other customers’ data.