Che cosa è a rischio se non convalido Conferma password sul lato server e eseguo questa convalida solo dal lato client?

1

Durante la modifica della password, nella mia applicazione eseguo solo la convalida JS per la password e conferma i valori del campo password. Si consiglia di avere convalide lato server. Tuttavia, la password di conferma serve allo scopo di essere doppiamente sicura della password che ha digitato. Che cosa è effettivamente a rischio se non invio il valore di conferma della password sul server e salvo il valore della password?

    
posta Sum 04.08.2017 - 14:45
fonte

2 risposte

3

La regola è controllare il lato server che effettivamente conta per il server, e lato client ciò che conta per l'utente. Ad esempio, se si desidera consentire solo determinati caratteri nella password e una lunghezza massima, questo deve essere controllato lato server. Se vuoi solo essere sicuro che l'utente sappia cosa ha appena digitato, i controlli del lato client vanno bene.

Alcuni controlli possono essere eseguiti due volte, perché ciò che conta per il server sono i dati, ma ciò che conta per l'utente deve essere avvertito di un errore il prima possibile. Ad esempio, è bene controllare prima la validità di un lato client campo non appena il campo è stato digitato per avvisare immediatamente l'utente, e quindi controllarlo lato server quando viene inviato il modulo.

    
risposta data 04.08.2017 - 16:52
fonte
1

Dipende da cosa stai facendo con esso.

Se stai solo convalidando che password1 e password2 sono identiche, allora il lato server o client va bene.

Ma la convalida della password di back-end e la disinfezione sono un requisito.

Mentre la tua convalida JS va bene per le richieste inoltrate manualmente, i cattivi attori non si preoccupano né usano il tuo modulo se non per leggere dove POST attuare i loro attacchi di forza bruta.

l'errore di disinfettare l'input di conferma della password può lasciarti aperto a una serie di problemi come l'iniezione SQL.

Esempio: qualcuno scrive uno script per inviare la reimpostazione della password o il modulo per la creazione dell'account e aggiunge ; DELETE * FROM USERS WHERE 1;

La mancata convalida che causa la perdita della tabella degli utenti.

Per un'introduzione decente sulle varie cose di cui dovresti proteggerti, vedi: link

    
risposta data 04.08.2017 - 14:58
fonte