Campi password HTML

3

Immagina di trovarti in una pagina HTML che ti offre il servizio di modifica della password. Alcuni siti web portano la password precedente in un campo password, che non puoi leggere. È possibile recuperare la password in campo? (ad esempio: codice sorgente, sniffing della sessione HTTP?)

In che modo HTML gestisce la "sicurezza" di questo campo?

    
posta 05.09.2015 - 07:02
fonte

4 risposte

15

Se hanno la vera vecchia password nel campo, puoi recuperarla guardando la fonte della pagina HTML. Ma di solito c'è solo un segnaposto come "questa era la vecchia password" che viene utilizzata per rilevare se l'utente cambia la password o se qualcos'altro all'interno del formulare viene modificato. Con una sicurezza adeguata, il sito non può nemmeno inserire la vecchia password nel modulo poiché la stessa password di testo non deve essere nota al sito perché la password è stata archiviata in modo irreversibile (vedi come le tue password sono memorizzate su internet .. ).

    
risposta data 05.09.2015 - 08:31
fonte
6

Some websites bring the previous password in a password field, which you can't read.

Quando vedi punti o asterischi nel campo della password, è perché il tuo browser memorizza il tuo nome utente e password e quando la pagina viene caricata popola i campi.

A volte, soprattutto nei moduli di modifica della password, la "vecchia password" appare come un set di asterischi. Il server non deve mai inviare la password o la sua lunghezza al client, ma deve essere utilizzata una stringa di asterischi costante o di lunghezza casuale.

Ci sono alcune regole da seguire con le password. Le password non dovrebbero mai essere inviate al cliente. Il computer potrebbe essere stato rubato o forse qualcun altro lo sta utilizzando e, poiché gli utenti tendono a utilizzare più volte la stessa password, ciò potrebbe compromettere altri account in siti diversi.

Inoltre, le password non dovrebbero mai essere memorizzate nel server. È necessario utilizzare invece il metodo salt-hash . Questo rende le password più difficili da usare in caso di furto del nostro database. Inoltre, impedisce ai programmatori incuranti di inviare password al client.

Queste sono le migliori pratiche seguite dalla maggior parte dei siti, ma i progettisti possono fare le cose in modo diverso e spesso pericoloso. Vi incoraggio a leggere le fonti del sito Web e cercare di capire come sono fatte le cose.

    
risposta data 05.09.2015 - 13:41
fonte
3

Se intendi la password salvata nel browser e mostrata come asterischi, puoi semplicemente rivelarla modificando il codice sorgente della pagina e modificando il tipo di input da password a text . Puoi visualizzare e modificare il codice sorgente della pagina in Chrome e Firefox facendo clic con il pulsante destro del mouse sul campo di input e selezionando inspect element.

    
risposta data 05.09.2015 - 08:52
fonte
2

Dubito strongmente che le informazioni sulla password siano realmente trasmesse dal server. Bene, supponendo che ci sia in effetti un tale tipo di informazione presente:

  • Recupero di questo tipo di informazioni sniffando i dati trasferiti HTTP quando ricevuti o inviati. Le informazioni significative dovrebbero essere parte dei dati ricevuti e inviati dati.
  • Recupero delle informazioni sulla password dal DOM.

Posso menzionare due ottimi addon per Firefox per raggiungere potenzialmente questo obiettivo. Tamper Data: per catturare i dati HTTP Firebug: per cercare il DOM e HTML

Potresti dover affrontare il problema che la password non sarà in chiaro. Questo potrebbe indicare che i dati devono essere decodificati sul lato client da qualche script. Quindi, ci sarebbe solo una sequenza di colpi dove l'informazione è genuina. Ogni ulteriore sicurezza dovrebbe ora dipendere dal processo di verifica sul lato server. Anche se questo sembra essere il metodo migliore per garantire la sicurezza, gran parte del processo dipende dal front-end, quindi è vulnerabile.

Nel complesso dipende molto dalla reale sequenza di sicurezza utilizzata per questo processo.

Il modo migliore per acquisire dati autentici è mentre il client invia i dati, supponendo che non ci sarà alcun processo di crittografia prima che i dati vengano inviati.

Non credo che l'HTML stesso fornisca funzionalità avanzate per gestire questo tipo di dati, nascondendo semplicemente il contenuto.

Suppongo tuttavia che i dati vengano elaborati da uno script sul lato client per mantenere segrete le informazioni. Questo sarebbe il modo migliore per compensare la sicurezza mancante. Inoltre, i dati potrebbero essere non una password, ma più probabilmente un hash o un token.

Ecco un semplice esempio per il tuo caso:

<!DOCTYPE html>
<html>
<body>

Type the secret code:
<input id="Passwd" name="Passwd" type="password" placeholder="Passwort" class="" value="catchme">
<p>Click the button to return the value of secret code.</p>

<button type="button" onclick="myFunction()">Try it</button>

<script>
function myFunction() {
    alert(document.getElementById("Passwd").value);
}
</script>

</body>
</html>

Online: link potrebbe apparire un popup di avvertenza XSS.

    
risposta data 05.09.2015 - 19:03
fonte

Leggi altre domande sui tag