Skip to content
U UniMonitor

Security

You are handing us a list of your clients' websites. Here is what we do with it.

Accounts cannot see each other

Every monitor, incident, alert and status page belongs to exactly one account, and that separation is enforced in the database layer rather than by remembering to add a filter to each query. When there is no account context — a background job, a misrouted request — queries return nothing rather than everything. Getting it wrong produces an empty screen somebody reports, instead of one customer reading another's data.

Credentials are encrypted, and some are never readable

Mail passwords, payment keys and bot tokens are encrypted at rest. The admin panel will show you whether a credential is set and its last four characters, and will never show you the value — including to us. API tokens and account recovery codes are hashed rather than encrypted, so a copy of the database contains nothing that can be replayed.

Outbound requests are checked before they are made

Every URL you give us is resolved and the resulting address is checked against private ranges, loopback and cloud metadata endpoints before a connection is opened — and again on every redirect. The address that passed the check is the address we connect to, so a DNS answer cannot change between the check and the request. This applies to monitor targets and to webhook URLs alike.

Two-step verification

Available on any account and required for platform administrators. Recovery codes are shown once and hashed; each is single use, and using one is recorded.

What we keep, and for how long

Individual check results are kept for seven days, hourly summaries for up to ninety, and daily summaries for as long as your plan allows. Old data is deleted on a schedule rather than accumulating forever.

Reporting a problem

Write to security@unibagency.com. We will confirm receipt and tell you what we find.