𝗬𝗼𝘂𝗿 𝗦𝗮𝗮𝗦 𝗜𝘀 𝗟𝗲𝗮𝗸𝗶𝗻𝗴 𝗠𝗼𝗻𝗲𝘆

La maggior parte degli sviluppatori rilascia il proprio SaaS e passa oltre. Considerano la sicurezza come un compito da svolgere in seguito. Aspettano che arrivino utenti reali o soldi veri.

Le perdite finanziarie reali spesso derivano da errori banali. Non si tratta di hack complessi. Sono errori di logica nel tuo codice.

Ecco quattro modi comuni in cui si perdono soldi:

  1. Race Condition nei sistemi di credito Leggi il saldo di un utente, lo controlli e poi scrivi il nuovo saldo. Se un utente invia due richieste contemporaneamente, entrambe potrebbero superare il controllo prima che la prima aggiorni il database. Offri due servizi al prezzo di uno.

La soluzione: Usa operazioni di database atomiche. Invece di leggere e poi scrivere, usa un singolo comando per aggiornare il saldo solo se l'utente ha abbastanza crediti.

  1. Fidarsi dell'input del client per l'identità Prendi l'indirizzo email dal corpo della richiesta durante il checkout. Un utente autenticato può cambiare quell'email con l'indirizzo di qualcun altro. Questo permette di creare sessioni di fatturazione per account errati o di sondare il sistema.

La soluzione: Non fidarti mai dell'identità proveniente dal corpo della richiesta. Estrai l'email dal token di sessione verificato sul tuo server.

  1. Logica di fatturazione annuale errata Molti sviluppatori resettano i crediti degli utenti ascoltando gli eventi di pagamento di Stripe. Questo funziona per i piani mensili, ma fallisce per quelli annuali. Stripe invia un solo evento all'anno. I tuoi utenti ricevono i crediti il primo giorno e nulla per gli undici mesi successivi.

La soluzione: Disaccoppia il reset dei crediti dagli eventi di fatturazione. Usa un cron job giornaliero per controllare quali utenti necessitano di un reset in base a una data di reset.

  1. Archiviazione non sicura dei token Archivi i token di reset della password in localStorage. Qualsiasi script sulla tua pagina può accedere a localStorage. Ciò include estensioni del browser e strumenti di analisi di terze parti.

La soluzione: Usa il tuo SDK di autenticazione per gestire i token di recupero. Lascia che la libreria elabori il token automaticamente senza memorizzarlo nel local storage.

Il problema è sempre lo stesso: ti fidi del client. Ti fidi che le richieste arrivino una alla volta. Ti fidi che gli eventi di fatturazione coprano ogni caso.

Risolvere questi problemi richiede meno di un giorno. Controlla il tuo codice prima di perdere soldi.

Fonte: https://dev.to/manolito99/your-saas-is-probably-leaking-money-right-now-and-you-dont-know-it-1g38