Domande di accesso utenti sicure

2

Ho bisogno di aiuto per determinare la sicurezza dell'accesso. Prima di tutto, ho letto questo:

La guida definitiva all'autenticazione del sito Web basata su moduli

È molto ben scritto, ottime informazioni, molte delle quali erano completamente nuove o più dettagliate di quanto sapessi in precedenza. Tuttavia, nella mia situazione, non posso decidere se è utile o meno.

Il problema è:

  1. Ho un accesso che verrà utilizzato da 1 a 3 persone al massimo, con le password distribuite in anticipo. Il login stesso sarà online, ma funzionerà più come un login di rete chiuso, non essendo disponibile per il pubblico globale che visita il sito web con link cliccabili ad esso - > (ma con la modifica della barra degli indirizzi da aggiungere / admin in modo che gli amministratori possano accedervi.
  2. A tal fine, è necessaria l'esperienza dell'utente anche per una manciata di persone. Voglio mettere un terribile "Remember Me" in modo che, mentre solo loro useranno il login per accedere alla pagina di amministrazione, non devono effettuare il login ogni volta.
  3. Il problema sorge quando una situazione reale oggi è a qualcuno che accusa accidentalmente la pagina di accesso o di amministrazione. In ogni caso, dal momento che non ha effettuato l'accesso, la pagina lo inoltrerà alla pagina di accesso. Per la popolazione globale che è andata davvero lì accidentalmente, inserirò un link "Return to Home", ma la preoccupazione è che quella persona cerchi di attaccare brutalmente, o peggio.
  4. Ho pensato ai FILTRI IP ma non so quanto sarà bello, oggi non è assolutamente necessario modificare un INDIRIZZO IP. Ho pensato al blocco Session con i valori DB al login, ma questo avrebbe bloccato l'intero login per X quantità di tempo (e se la forza bruta continua, gli amministratori non saranno mai in grado di accedere, perché il blocco si riattiverà dopo la X tempo con gli attacchi brutali). Ho pensato al captcha, ma non sarebbe stato per contrastare il ricordo di me?
  5. Non mi piace la falsa speranza che nessuno possa nemmeno tentare di hackerare un sito innocente, o spacciarlo. Questa è la realtà oggi. Voglio solo sapere se hai un modo migliore di quello che penso. Se è così, per favore, dillo.
posta David Law Drakulovski 03.09.2012 - 10:16
fonte

1 risposta

3
  1. La sicurezza per oscurità è cattiva. Durante lo sviluppo agisce come se il modulo di accesso fosse visualizzato da tutti gli utenti del tuo sito web.

  2. Ricorda di creare la funzione "Ricordami" in un modo che non memorizza, ad es. la password in un cookie. Una scelta sarebbe avere un hash di accesso casuale e unico memorizzato per l'utente. Quindi si salva l'id utente e questo hash in un cookie. Ciò impedisce che la password venga salvata in un cookie e tu puoi fornire un pulsante "logout ovunque" che semplicemente modifica l'hash nel database e quindi invalida tutti i cookie "ricordami".

  3. Anche se un po 'di sicurezza per oscurità potresti semplicemente restituire un errore 404 in questo caso. Non c'è bisogno che le persone sappiano che qualcosa esiste anche se non hanno accesso ad esso.

  4. Gli attacchi di forza bruta possono essere eseguiti da botnet, quindi un filtro IP da solo non è di grande aiuto. Limitare il numero di tentativi di accesso per account è l'unica scelta valida. Tuttavia, puoi farlo in un modo molto user-friendly, consentendo 1-3 tentativi senza captcha ecc. E poi richiedi un captcha ad ogni tentativo aggiuntivo. Naturalmente bloccare l'intero account per un po 'di tempo sarebbe ancora meglio, ma poi le persone potrebbero fare i tuoi utenti legittimi. Quel captcha non interferirà con "ricordami" - le restrizioni si applicherebbero solo al login Username + Password ma non al login del cookie. Questo non è un problema, dal momento che puoi semplicemente usare gli hash di 40+ caratteri per questo scopo e puoi tranquillamente pensare che quelli non saranno craccati usando la forza bruta.

Poiché hai pochi utenti, potresti prendere in considerazione l'idea di utilizzare certificati client SSL per l'autenticazione nel caso in cui quegli utenti non siano in grado di accedere da macchine casuali. Avrebbero installato il certificato / chiave del client nel loro browser e poi lo avrebbero semplicemente selezionato al momento del login - non c'è più bisogno di un nome utente / password. E SSL è abbastanza sicuro per cui non devi preoccuparti di attacchi a forza bruta per ora. Tuttavia, se i tuoi utenti sono abbastanza stupidi, potrebbero esportare la chiave senza crittografia e archiviare quel file non crittografato sul loro PC. Ma di nuovo, questo tipo di utente avrebbe anche un file passwords.txt sul proprio desktop ...

    
risposta data 04.09.2012 - 14:48
fonte

Leggi altre domande sui tag