How we protect your data, your bot tokens, and your subscribers. Last updated: May 17, 2026.
/api/auth/login and /api/auth/register — repeated failures throttle the IP and the targeted account.WEB_ALLOWED_IPS) for high-security single-tenant deployments.BotPermission.bot_id column and a SQLAlchemy ORM event auto-injects WHERE bot_id = current_bot_id on every SELECT. Mis-routed queries can never leak rows across bots.403 — never 404 — so we don't leak the existence of other bots.WEB_SECRET_KEY environment variable. Decrypted only in-memory at send time.getMe before being persisted — invalid tokens are refused.webhook_secret. We verify the X-Telegram-Bot-Api-Secret-Token header on every inbound request; mismatches return 403 and are not processed.webhook_secret automatically so the old secret becomes useless.STRIPE_WEBHOOK_SECRET on every event; mismatches return 400.UNIQUE ON broadcasts(bot_id) WHERE status='sending') — two admins clicking Send simultaneously can't double-deliver. Stale ‘sending’ rows older than 10 minutes are auto-released.if_unmodified_since and return 409 if the row moved on us. Each campaign / auto-message / scheduled broadcast carries an updated_at token.Every mutating action writes an immutable row in audit_logs: who, what, which resource, IP address, user-agent, full details JSON. Retained for 2 years. Visible to the bot owner under Audit Log.
/healthz exposed for uptime probes.Found a vulnerability? Please email security@myskua.com. We respond within one business day. Please give us at least 30 days to remediate before public disclosure. We don't currently run a paid bug-bounty programme but we credit researchers in our security hall of fame on request.
See also: Privacy Policy · DPA · Terms of Service.
Want this on your own bots?
mySkua is in a closed beta and accounts are opened in small batches. Tell us what you run and we will come back to you.
Request access