BETA Early Access — 100 individual + 20 IFA founding places. 95 individual & 20 IFA spots left! Claim Your Spot →

Security at Wealth365

Your financial data is sensitive. We take its protection seriously. The measures described on this page reflect the security controls built into our platform.

Data Encryption

Your information is protected at every layer

๐Ÿ”

Field-Level Encryption

Sensitive personal and financial fields are encrypted at the individual field level using Fernet symmetric encryption (AES-128-CBC with HMAC-SHA256). This means even if someone gained access to our database, protected information would be unreadable ciphertext.

Implementation: Fernet via Python cryptography library. Each encrypted value carries its own authentication tag, preventing tampering.
๐Ÿ”‘

Password Hashing

Your password is never stored โ€” not even in encrypted form. Instead, we use bcrypt, a deliberately slow, adaptive hashing algorithm designed specifically for passwords. Even we cannot recover your password; we can only verify it.

Implementation: bcrypt via Flask-Bcrypt with automatic salting. The work factor increases computational cost to resist brute-force attacks.
๐ŸŒ

Transport Encryption

All connections to Wealth365 are encrypted with TLS (HTTPS). Session cookies are flagged as Secure, meaning they are never transmitted over unencrypted connections.

Implementation: SESSION_COOKIE_SECURE = True. HTTPS enforced at infrastructure level.

Session & Access Controls

Strict controls to protect your account from unauthorised access

๐Ÿช

Secure Session Cookies

Sessions use HttpOnly cookies (inaccessible to JavaScript), SameSite=Lax (prevents cross-site request attacks), and are transmitted only over HTTPS.

Flags: Secure, HttpOnly, SameSite=Lax
โฑ๏ธ

Session Timeouts

Sessions are configured with an 8-hour lifetime and a 30-minute idle timeout โ€” if you step away from your computer, your session expires automatically. Concurrent session limits prevent unauthorised reuse of credentials.

Settings: Configured 8-hour session lifetime. 30-minute idle timeout. Concurrent session limits enforced per user.
๐Ÿšฆ

Tiered Rate Limiting

Key endpoints are rate-limited to prevent brute-force attacks, credential stuffing, and abuse. Different tiers apply to different areas of the application, with dedicated throttling on login and registration.

Limits: Admin: 30 req/min | API: 60 req/min | Pages: 120 req/min
๐Ÿ”’

Account Lockout

After repeated failed login attempts, accounts are temporarily locked to prevent brute-force password guessing. Users are notified and can recover through the password reset flow.

Implementation: Failed login tracking with automatic lockout. Password history prevents reuse of the last 5 passwords.

Application Security

Defence in depth across the application layer

๐Ÿ›ก๏ธ

CSRF Protection

Standard forms and authenticated API requests require a valid CSRF token. This prevents malicious websites from performing actions on your behalf if you happen to visit them while logged in. Token-authenticated endpoints (e.g. webhooks) use their own verification.

Implementation: Flask-WTF CSRFProtect on POST/PUT/PATCH/DELETE for authenticated forms. Token-authenticated integrations use separate verification.
๐Ÿ“‹

Audit Logging

Security-relevant and key account actions are recorded in an append-only audit log with a 7-year archival policy. This supports GDPR subject access requests and regulatory compliance.

Retention: 7-year archival policy. Logs include user, IP, action, timestamp, and outcome.
๐Ÿค–

Bot & Spam Prevention

Registration and sensitive forms employ honeypot fields, timing analysis, and disposable email detection to prevent automated abuse without degrading the user experience.

Methods: Honeypot fields, submission timing checks, disposable email domain blocking.

Input Validation

Every piece of data is validated before it enters the system

โœ…

Allowed-Key Whitelisting

API endpoints only accept recognised field names. Unknown keys are rejected before processing, preventing injection of unexpected data into your financial plan.

Implementation: Server-side allowed-key sets on all data-accepting endpoints. Unrecognised fields return validation errors.
๐Ÿ”ข

Type & Range Checks

Financial values are validated for correct types (numbers, dates, percentages) and sensible ranges. This prevents corrupt data from entering calculations and producing misleading projections.

Implementation: Server-side type coercion, range validation, and length limits on all user-submitted data.
๐Ÿงน

Output Escaping

User-generated text is escaped before rendering to prevent cross-site scripting (XSS) attacks. Template output is auto-escaped by default, and server-side sanitisation removes dangerous markup.

Implementation: Jinja2 auto-escaping enabled by default. Server-side HTML sanitisation on user-supplied content.

Payments & Privacy

Your money and your data handled with care

๐Ÿ’ณ

Stripe Payments

All payment processing is handled by Stripe, a PCI-DSS Level 1 certified provider. Your card number, CVV, and billing details are submitted directly to Stripe โ€” they never touch our servers. We only receive a confirmation token.

Provider: Stripe (PCI-DSS Level 1). Zero card data stored on Wealth365 servers.
๐Ÿ‡ฌ๐Ÿ‡ง

UK GDPR Compliance

We comply with the UK General Data Protection Regulation. Your data is processed lawfully, minimised to what is necessary, and you can request access, correction, or deletion at any time. See our Privacy Policy for full details on data handling.

Rights: Access, rectification, erasure, portability. Contact: contact@wealth365.co.uk

Calculation Accuracy

Our tax engine is continuously verified against HMRC rules

Automated Test Suite

Every calculation in our tax engine โ€” income tax, National Insurance, capital gains, dividends, pension allowances, and more โ€” is verified by an automated test suite that runs against known UK tax rules and HMRC thresholds.

Checking tests...
📊

What We Test

Our test suite covers the areas that matter most for your financial plan:

  • UK income tax bands and personal allowance taper
  • National Insurance thresholds and rates
  • Dividend and savings income taxation
  • Capital gains tax with annual exemption
  • Pension tax-free lump sum calculations
  • ISA growth projections and contribution caps
  • The 60% marginal rate trap (£100k–£125,140)

Responsible Disclosure

If you discover a security vulnerability, we encourage responsible disclosure. Please report it to security@wealth365.co.uk. We appreciate researchers who give us the opportunity to address issues before public disclosure.

Our security.txt file follows RFC 9116 standards for security contact information.

Ready to Start Planning Securely?

Your financial future, protected by real security measures. Not just promises.

Start Your Free Trial