Tecniche per aggirare il controllo della lunghezza zero in javascript?

0

Sto lavorando su un'applicazione node.js che consente agli utenti di registrarsi per account usando i social media. Quando lo fanno, viene creata una voce nel nostro database con il loro indirizzo email e una password vuota.

Quando ho visto questo mi sono preoccupato che qualcuno potesse semplicemente fornire un indirizzo email e una password vuota per accedere come chiunque avesse un account di social media. Dopo alcuni test rapidi sembra che ci sia una riga nel codice di autenticazione che genera un errore se c'è una password di lunghezza zero. La linea è sotto:

 if (!username || !password) { ...

L'unica cosa che ho potuto pensare di provare a fare questo è stato passare un carattere DEL con codifica URL in ( %7F ), ma questo non l'ha bypassato.

Sono curioso di sapere se sono al sicuro con quanto sopra o se c'è un personaggio che potrebbe essere passato in modo da superare il controllo sopra?

    
posta Abe Miessler 01.10.2014 - 19:49
fonte

1 risposta

3

Il test che hai:

if (!username || !password)

Verifica se i valori di username e password sono valori di falsi javascript. Un valore di falsa in javascript è uno di questi: null , undefined , 0 , false , NaN o una stringa vuota.

Una stringa vuota in javascript è una stringa di lunghezza zero, quindi se ha almeno un carattere in essa (qualsiasi carattere sarà sufficiente), quindi non è una stringa vuota.

Quindi, se a causa del modo in cui il tuo codice è strutturato, sai che sia username che password saranno sempre stringhe, quindi il codice sopra è solo un controllo per vedere se entrambi sono stringhe vuote.

Non esiste un carattere che potrebbe essere in quelle stringhe che supererebbero il test precedente. Una delle stringhe deve essere completamente vuota (lunghezza zero) per superare quel test.

    
risposta data 01.10.2014 - 21:29
fonte

Leggi altre domande sui tag