Skip to main content
ETFLens

Security & Privacy

Your data is not our product.

ETFLens is a research tool, not an ad platform. Here's exactly how we handle your account, payments and data.

๐Ÿ”‘

No passwords stored

We use Google OAuth exclusively. Your password lives with Google, ETFLens never sees it.

๐Ÿ’ณ

We never see your card

Payments are handled entirely by Stripe. ETFLens stores only your Stripe customer ID, never card details.

๐Ÿ”’

Encrypted in transit

All traffic runs over HTTPS with strict transport security enforced. No plain-text connections accepted.

๐Ÿšซ

No data selling

We don't sell, share or monetise your data. ETFLens makes money from subscriptions, not advertising.

Account security

โœ“

Google OAuth only

No username/password authentication. This means no password database to breach and no credential stuffing attacks possible.

โœ“

HttpOnly session cookies

Your session token is stored in an HttpOnly cookie, JavaScript on the page cannot read it, preventing XSS-based session theft.

โœ“

Sessions expire automatically

Sessions expire after 30 days of inactivity. You are logged out automatically and must re-authenticate.

โœ“

SameSite cookie protection

Cookies use SameSite=Lax, which prevents them being sent in cross-site requests, blocking most CSRF attacks by default.

โœ“

Server-side session validation

Sessions are stored in our database, not in a client-side JWT. We can invalidate any session instantly if needed.

Payment security

Powered by Stripe - the same payment infrastructure used by Amazon, Google and Shopify.

โœ“

We never store card details

When you enter your card, it goes directly to Stripe's servers over an encrypted connection. ETFLens only stores your Stripe customer ID.

โœ“

PCI DSS compliant payments

Stripe is certified to PCI Service Provider Level 1, the highest level of payment security certification.

โœ“

Webhook signature verification

Every Stripe webhook is cryptographically verified before we act on it. Fake or tampered webhooks are rejected immediately.

โœ“

Idempotent payment processing

We track every Stripe event we process so subscription changes are never applied twice, even if Stripe retries delivery.

โœ“

Payment failure alerts

Failed payments are logged immediately so we can follow up quickly.

Infrastructure

ETFLens is hosted on infrastructure used by some of the world's largest companies.

โœ“

Hosted on Vercel

Global edge network with automatic HTTPS, DDoS protection and 99.99% uptime SLA.

โœ“

Database on Supabase (Sydney)

Your data is stored in Supabase's Sydney region, keeping Australian user data in Australia.

โœ“

Strict content security policy

Our CSP header restricts what scripts and connections are allowed, preventing malicious code injection.

โœ“

Clickjacking protection

ETFLens pages cannot be embedded in iframes on other sites, blocking clickjacking attacks entirely.

โœ“

Rate limiting on all endpoints

API routes are rate-limited per IP to prevent abuse. Repeated suspicious requests are blocked automatically.

What we collect and why

We collect the minimum needed to run the service.

Email address

Required for your account. Not shared with third parties.

Name & profile photo

From Google OAuth. Displayed in your account only.

Subscription status

To know whether you have a Pro account.

ETF searches

To improve search quality. Not sold or shared.

Stripe customer ID

To link your account to your subscription. Not a payment method.

What we don't collect

Card numbers, bank account details, tax file numbers, brokerage account details, portfolio holdings, or any other financial account information.

Found a security issue?

If you discover a security vulnerability, please report it directly rather than publicly. We take all reports seriously and will respond within 24 hours.

๐Ÿ”’ security@etflens.com.au

We appreciate responsible disclosure. We'll credit you in our changelog if you'd like.

Privacy Policy โ†’Terms of Service โ†’About ETFLens