Come posso proteggere la mia pagina di accesso?

8

La pagina di accesso è il punto di partenza per qualsiasi sito web e la cosa più importante per autenticare l'utente.

Quando inizio a creare un'applicazione web, mi prendo molto tempo per pensare a come progettare una pagina di accesso con un'interfaccia flessibile e così sicura.

Esistono consigli, suggerimenti o elenchi "da fare" comuni da tenere in considerazione quando inizi a creare la pagina di accesso? Voglio un consiglio generale, perché il mio DBMS potrebbe essere Informix o MySQL o SQL Server.

    
posta Anyname Donotcare 25.07.2011 - 23:36
fonte

7 risposte

10

Ecco alcuni altri:

  • ogni volta che puoi, evita di reinventare la ruota - se puoi, riusare e migliorare il tuo sistema da un progetto all'altro, ogni volta che lo rivedi.

  • mantieni la password oscurata - non mostrare testo sulla pagina, trasmettere su HTTPS, non effettuare il login in chiaro sul back-end, archiviare in modo sicuro nel database. Fondamentalmente ovunque vada la password, la privacy dovrebbe essere mantenuta

  • fare errori nel registro; non mostrare troppe informazioni agli utenti. Specialmente la "password errata" rispetto a "nome utente errato": non comunicare all'autore dell'attacco che hanno trovato un nome utente valido, indicare "credenziali non valide" o "nome utente / password errati" senza specifiche. Ma fai, nel back-end, registra i problemi - è una ripetizione di un nome utente? quali sono le caratteristiche dell'attuale fallimento? In un sistema di fascia alta, avresti qualcosa che osserva e avvisa gli amministratori se il comportamento mostra qualità di attacco.

  • Mostra chiaramente la cosa che l'utente sta effettuando l'accesso alla pagina e fornisce un link o una pagina di visualizzazione dei termini di utilizzo. Fai controllare questo con l'avvocato / cliente.

  • considera un sistema di blocco della password e ciò che si adatta agli utenti. Per un riutilizzo ottimale, avere le impostazioni di configurazione per # accessi errati prima del blocco e # dei minuti di blocco prima della riattivazione (con un'impostazione per "solo ripristino manuale")

  • considera attentamente qualsiasi funzione per la reimpostazione della password, difficile da creare in modo sicuro.

  • considera i tuoi utenti e tutto ciò di cui hanno bisogno per autenticare il tuo server - molti non sono esperti di SSL / certificati, quindi cosa puoi fare per minimizzare un utente che fornisce la password per il tuo sito a un hacker?

risposta data 26.07.2011 - 16:22
fonte
13

Versione moderna:

  • Utilizza HTTPS per l'intero sito, comprese le pagine di marketing. Aggiungi l' intestazione HSTS .

  • Se il tuo pubblico di destinazione è abbastanza esperto nel computer, evita il tradizionale nome utente & password di accesso completamente. Offri questo a un buon sistema di login federato, come multi-provider OpenID o Facebook Connect o login di Google .

  • Per la funzionalità del tuo sito che ha esigenze di sicurezza più elevate (le cose importanti) utilizza i token CSRF .

risposta data 26.07.2011 - 00:53
fonte
4
  • Utilizza SSL
  • Hash e salta le tue password, preferibilmente utilizzando una libreria invece di farla da sola.
  • Trasferisci i dati al server SQL utilizzando l'associazione anziché tentare di sfuggire alle stringhe.
  • Non emette nulla che viene inserito - previene interamente XSS.

Il phishing è completamente diverso.

    
risposta data 26.07.2011 - 00:14
fonte
4

Ignora interamente la tua pagina di login ... Se hai l'opzione usa invece l'autenticazione basata sui crediti e la federazione delle identità: link (quel collegamento è in particolare su .NET, ma ha un buon primer su CBA).

    
risposta data 26.07.2011 - 00:50
fonte
2

Questa pagina contiene molte informazioni su come utilizzare in modo sicuro TLS per il tuo sito web. Anche se ci sono altre preoccupazioni per il tuo sistema di autenticazione (come l'archiviazione delle password, la gestione delle sessioni, ecc.) Questo fornirà comunque molte buone informazioni.

link

    
risposta data 26.07.2011 - 12:31
fonte
1

per espandere il quarto punto di Jeff -

  • Convalida tutti gli input e codifica tutti gli output: ciò impedirà la maggior parte degli attacchi comuni attualmente disponibili su Internet.

anche,

  • Applica il tuo O / S e le tue applicazioni. Quando vengono fuori le patch di sicurezza per il tuo database, correggili!
risposta data 26.07.2011 - 00:38
fonte
0

Punti di forza per gli altri. Volevo solo aggiungere attenzione all'iniezione Sql e all'utilizzo di query parametrizzate / stored procedure per prevenirlo.

link

    
risposta data 17.10.2015 - 03:36
fonte

Leggi altre domande sui tag