Insidie quando si attiva la propria funzionalità "mostra password"

9

Sto considerando di emulare la funzionalità "Mostra password", disponibile in alcuni browser più recenti, su un sito web, essenzialmente come un polifratura per i browser che non lo fanno. Il metodo più comune per farlo è chiama una funzione JavaScript che alterna il tipo di input tra password e text , ma dato che si tratta di dati di password, sono diffidente nei confronti di questo.

  1. Posizionare una password in chiaro in un input text comporta il rischio che la password venga raschiata da plugin dannosi?

  2. In particolare, i browser moderni implementano meccanismi di sicurezza attorno agli input password -type oltre all'offuscamento visivo utilizzando i punti?

  3. Il link sopra riportato riflette l'attuale best practice del settore per questo tipo di funzionalità?

posta Jules 15.05.2018 - 19:14
fonte

2 risposte

6

Does placing a plaintext password in a text input run the risk of the password being scraped by malicious plugins?

I plug-in dannosi possono analizzare tutti i dati dei moduli, i campi della password inclusi o persino registrarli prima che vengano scritti. Quindi cambiare il tipo non fa differenza qui.

In generale, non ha senso cercare di difendersi dai plugin del browser dannosi. Se il tuo utente ne ha uno, è game over.

Specifically, do modern browsers implement any security mechanisms around password-type inputs besides the visual obfuscation using dots?

I campi password hanno il completamento automatico disattivato per impostazione predefinita. Per impedire al browser di salvare la password e potenzialmente di farli fuoriuscire come suggerimenti in seguito, è necessario assicurarsi di impostare esplicitamente autocomplete="off" nel campo di input. Questo dovrebbe gestire entrambi i suggerimenti durante la digitazione e il riempimento automatico dello stato precedente ad es. quando si utilizza il pulsante Indietro.

Potrebbero esserci browser più vecchi che ignorano autocomplete="off" - chissà, i browser sono soliti fare ogni sorta di cose stupide - ma dubito che sia una grande percentuale. Ancora, potrebbe essere un problema.

La presenza di un campo password fa in modo che alcuni browser avvertano in modo più aggressivo sulle connessioni non crittografate. Quindi, usare i campi di testo invece potrebbe disattivare gli avvisi, il che è male. Ma se stai usando TLS con HSTS questo non dovrebbe essere un problema.

Inoltre, potrebbe creare problemi con i gestori di password (sia i browser integrati che quelli esterni). Ma è più una fruibilità che un problema di sicurezza.

Does the above link reflect the current industry best practice for this kind of functionality?

A parte il problema del completamento automatico, ritengo che ciò andrebbe bene fino a quando si è a posto con il rischio intrinseco della navigazione a spalla. Chissà cosa ho trascurato, però.

Dato che si dice "best practice del settore", devo menzionare che manipolare direttamente il DOM in questo modo non è più come si fa di solito, ma questo non ha nulla a che fare con la sicurezza.

Per essere onesti, devo ammettere che non sono un grande fan di questa funzionalità. Sembra un po 'hacky. Raccomanderei di non implementarlo a meno che tu non abbia ragioni molto specifiche per farlo. Ciò si basa più sul mio intuito (e su un'avversione generale verso le caratteristiche non essenziali) che su qualsiasi altra cosa, comunque.

    
risposta data 15.05.2018 - 22:51
fonte
3

La più grande minaccia, di gran lunga, è la funzione di completamento automatico. Assicurati che il browser non salvi la password nella cronologia del completamento automatico.

  1. Sì, tuttavia, è difficile tener conto di ciò, poiché questi plugin dannosi potrebbero iniettare il JS da soli per modificare i campi della password in campi di testo.
  2. AFAIK, i browser non fanno nulla di speciale con i campi Password tranne che impediscono la lettura dei caratteri sullo schermo e impediscono il completamento automatico del salvataggio dei contenuti (sebbene non sia il gestore password incorporato).
  3. Sono abbastanza sicuro che Industry Best Practice (TM) non lo farà affatto, ma finché ti assicuri di essere consapevole dei rischi, puoi farlo in sicurezza.

Guarda questa domanda di overflow dello stack .

    
risposta data 15.05.2018 - 22:53
fonte

Leggi altre domande sui tag