HomeSecurity
Security

Built so that the boring protections are always on.

Security is not a badge on a homepage. It is a set of decisions in the code: who can see a document, when a payment counts, what a form will accept. These are the decisions behind Finlxo.

Stripe card fields Hashed passwords CSRF-protected forms Access-controlled KYC
The essentials

Five layers, no theatre.

Each layer covers a different failure: a stolen password, a forged form, a spoofed payment redirect, an exposed document, or a compromised card field.

Card data never reaches Finlxo

The card step is rendered by Stripe Elements inside the payment page. The number, expiry and security code are sent directly to Stripe and replaced with a token. Finlxo stores the payment reference, amount, currency and status — never the card itself.

Tokenised card stepStripe collects and validates the card details.
Confirmed on the serverA browser redirect alone never marks a payment successful.

Identity documents stay private

KYC files are stored outside the public asset flow and served through an authenticated admin route. The upload directory denies direct web access, filenames are randomised, and only JPEG or PNG images are accepted after a real image check.

Private storageAdmin-only accessValidated uploads

Passwords are hashed

Passwords are stored with PHP's password hashing API, never in plain text. Security answers are hashed too, so a database read does not hand over the reset questions.

Forms carry a token

Sign-in, sign-up, password changes, payment creation and every admin action require a session-bound CSRF token, checked before the action runs.

Sessions are deliberate

Session cookies are HttpOnly and SameSite=Lax, the session ID is regenerated at login, and signing out destroys the session rather than leaving it behind.

On the server

The quiet checks behind every action.

Most security work is invisible when it is done well. These are the checks that run before money, identity or account details can change.

  • Prepared SQL statements for every query that touches user input.
  • Admin pages verify the signed-in user's admin flag, not just a session.
  • Payment intents are retrieved from Stripe and checked again before completion is recorded.
  • Uploaded files are checked by content type and size, not by filename alone.
  • Withdrawal amounts are compared to the available balance on the server.
Prepared statementsInput is bound, not stitched into SQL.
Server-side confirmationStripe status is re-read before success.
No public KYC routeDocuments are not exposed by URL.
Block rulesAbusive IPs, devices and agents can be blocked.
Attempt limitsRepeated sign-in and reset attempts are throttled.
What we ask of you

Security is a shared habit.

The strongest controls still rely on the person holding the password. A few simple habits close the gaps that software cannot.

  • Use a unique password. A password manager beats a memorable variation.
  • Keep your email secure. Password resets and account notices go there.
  • Check the URL. The payment page should live on finlxo.com, with the card step loading from Stripe.
  • Tell us early. If something looks wrong, write to security@finlxo.com before it becomes expensive.
What Finlxo will never do Keep this list
Ask for your card numberOutside the Stripe card field
Ask for your passwordBy email, message or phone
Charge a fee to verifyVerification is part of the account
Promise guaranteed returnsFinlxo is a wallet, not an investment

Report a vulnerability

If you believe you have found a security issue, email security@finlxo.com with the steps to reproduce it. Please do not access other people's data, and give us a reasonable window to fix the issue before disclosing it publicly.

Account compromise

If you think someone else has access to your account, change your password from the profile page immediately, then write to support so we can review recent activity and lock the account if needed.

Law enforcement requests

Finlxo responds to valid legal process through its published support channel and reviews each request for scope. We do not hand over account data on an informal message alone.

Questions welcome

Want the detail behind a control?

Write to the security inbox. We would rather answer a question than investigate a surprise.

No card numbers stored
KYC behind admin access
Payments verified server-side