Quali caratteristiche di sicurezza devo avere sul posto per garantire che i moduli di registrazione e registrazione del mio sito Web siano sicuri?
Quali caratteristiche di sicurezza devo avere sul posto per garantire che i moduli di registrazione e registrazione del mio sito Web siano sicuri?
CSRF - Devi avere protezione in posto per evitare la falsificazione di richieste cross-site o richieste di accesso, registrazione o altre azioni da altri siti. Questo può essere usato per indurre gli utenti a compiere azioni che non intendevano.
CAPTCHA all'iscrizione - Si consiglia spesso di utilizzare un CAPTCHA sul tuo sigh-up modulo per ridurre le registrazioni automatiche. Quanto è importante questo dipende dal tuo modello di minaccia.
Accesso sicuro : il login deve avvenire su HTTPS per ridurre il rischio che le credenziali dell'utente vengano acquisite tramite MiTM attacco.
Cookie - Mentre il login su HTTPS dovrebbe essere visto come minimo, tutto il resto dovrebbe essere anche su SSL per proteggere i cookie (ricorda Firesheep ?). Anche se l'utilizzo di SSL non è sufficiente, devi impostare il sicuro flag e HttpOnly segnala quando possibile.
Conferma email : devi assicurarti di verificare l'indirizzo email di un utente come parte della procedura di registrazione (ti suggerisco di non consentirgli l'accesso finché non verrà confermato). Avrai bisogno di avere questo per l'uso in reset della password.
Protezione bruteforce : devi proteggere contro gli account utente bruteforcing di un utente malintenzionato. Ci sono vari modi per farlo, chiudendo account (che può essere usato come attacco DoS bloccando numero elevato di utenti), limitando i tentativi falliti da un dato IP (tramite ban o CAPTCHA aggiuntivo). Ci sono pro e contro per ogni metodo, ma è importante che tu abbia una qualche forma di protezione.
Ripristino password protetta : devi assicurarti di disporre di un metodo sicuro per reimpostare le password. Questo è più complicato di quanto la maggior parte della gente pensi, ed è facile sbagliare ( come recentemente Apple ha trovato ). Il più grande rischio è che un utente malintenzionato trovi un modo per abusare della funzionalità per reimpostare gli account che non possiedono.
Suggerisco vivamente di leggere l'OWSAP Cheat Sheet di autenticazione , che entra nei dettagli su questi e molti altri potenziali problemi; e come sempre, quando si creano nuovi sistemi, è un buon momento per dare un'altra occhiata al OWASP Top 10 e assicurati di aver preso le dovute precauzioni.
Aggiunta alla risposta di Adam Vorrei dire che secondo Applicazione OWASP Top 10 Security Risks-2013 le tre principali vulnerabilità sono Injection, Flaws nel meccanismo di autenticazione / gestione delle sessioni e XSS.
Informazioni sul cookie:
Se si utilizza il cookie per la procedura di accesso, è importante salvare le informazioni sui cookie nel proprio database (ad esempio MySQL), quindi se un utente effettua il logout le informazioni sui cookie verranno eliminate dal database e il cookie non sarà più valido È importante, perché se un hacker ruba il cookie, allora può accedere al tuo account!
Un'altra soluzione parallela:
Per proteggere la tua pagina di accesso puoi utilizzare questo servizio Colobe
È un servizio gratuito che protegge le tue pagine da qualsiasi attacco di forza bruta. Comunque Colobe richiede PHP nel tuo server.
È molto bello perché colobe è un servizio dinamico che apprende durante il tempo e costruisce una lista nera globale delle reti botnet e dei server pirata che generano quegli attacchi.
N.B. Colobe è un mio progetto.
Leggi altre domande sui tag authentication web-application password-policy