Suggerimenti per la sicurezza del sistema di accesso

1

Sto creando un sistema di accesso e mi stavo chiedendo se qualcuno avesse qualche suggerimento. Ecco la mia configurazione attuale:

  1. nonce per verificare se il login è originato dal nostro modulo di accesso
  2. sessione e cookie auth misti - in un cookie di sessione sha256 (nome utente-set-in-una-sessione, cookie-statico-id, agente utente)
  3. L'ID di sessione php viene rigenerato ogni richiesta
  4. SSL su tutto il sito
  5. Verifica se sono attivi - timeout dopo 1 ora
  6. La password deve contenere 8 caratteri con almeno un numero e una lettera
  7. Password memorizzata con un salt statico e dinamico con l'hash sha256
  8. Dopo 10 accessi falliti su qualsiasi account mostra recaptcha
  9. Dopo 10 accessi non riusciti su un account, disattivarlo per 10 minuti o fino a quando l'e-mail non conferma
  10. Messaggi di errore generici - es: accesso non riuscito, riprova
  11. Iniezione SQL prevenuta
posta Ethan H 16.06.2012 - 19:41
fonte

3 risposte

4

Il miglior consiglio che posso darti è leggere la guida definitiva all'autenticazione del sito Web basata su moduli su StackOverflow. È praticamente la risposta migliore di cui avrai mai bisogno e include numerosi link per ulteriori letture.

    
risposta data 16.06.2012 - 23:02
fonte
2

Potresti duplicare gli sforzi e vedo dei punti deboli con il tuo approccio alla selezione e allo storage delle password, nonché un ottimo modo per applicare un attacco DoS agli account admin del tuo sistema. Potresti prendere in considerazione l'utilizzo di questo:

link

Questo è un sistema SSO di livello enterprise. Fa tutto ciò che fa il tuo sistema - solo meglio e senza il problema del DoS.

La risposta del polinomio è in realtà piuttosto buona, ma dubito che sarà la "risposta migliore che tu abbia mai bisogno" - dopo tutto, la sicurezza è un obiettivo in movimento. La migliore risposta di oggi potrebbe essere quella di domani "ZOMG - Non posso credere che lo facessimo!"

    
risposta data 17.06.2012 - 17:30
fonte
1

session and cookie auth mixed - in a session cookie sha256(username-set-in-a-session,static-cookie-id,user-agent)

Senza sale, quindi è facilmente riproducibile - come aiuta la sicurezza?

The php session id is regenerated every request

Mentre si dovrebbe sempre rigenerare un id di sessione durante la transizione tra diversi stati di autenticazione, farlo per ogni richiesta è piuttosto sciocco. Non aiuta la sicurezza ed è probabile che interrompa il sito in modi strani (ad esempio se l'utente divide la sessione).

After 10 failed logins on one account disable it for 10 minutes or until email confirm

Quindi non preoccuparti di più accessi falliti consecutivi dallo stesso indirizzo IP / agente utente purché siano per account diversi?

SSL on the whole site

Ma hai controllato che hai i flag sicuri e httponly sui tuoi cookies?

    
risposta data 18.06.2012 - 11:07
fonte

Leggi altre domande sui tag