it-swarm.dev

I siti Web dovrebbero essere autorizzati a disabilitare il completamento automatico su moduli o campi?

Attualmente, esiste un attributo HTML form/input chiamato autocomplete, che, se impostato su off, disabilita il completamento automatico/riempimento automatico per quel modulo o elemento.

Alcune banche sembrano usarlo per impedire ai gestori di password di funzionare. Oggigiorno anche siti come Yahoo Mail sembrano farlo perché ritengono che i gestori di password non siano sicuri.

Alcune settimane fa ho implementato un funzione in Firefox che offre all'utente la possibilità di sovrascriverlo solo per campi solo nome utente/password (cioè per disabilitare il gestore password). Ora c'è na richiesta che lo sta chiedendo di sovrascrivere autocomplete=off per impostazione predefinita. Citando il problema:

Questo comportamento è una concessione ai siti che pensano che i gestori di password siano dannosi e che quindi vogliano impedire che siano efficaci. Nel complesso, penso che quei siti siano generalmente sbagliati e non dovrebbero avere così tanto controllo sul nostro comportamento.

Questo ha senso per me, per ragioni simili a quelle in questo commento di BenB .

completamento automatico = off è stato abusato molto di recente. Yahoo ha iniziato a usarlo per il proprio login (compresi webmail e my.yahoo.com), motivo per cui ho smesso di usare Yahoo. Le app di webmail - anche alcuni provider più grandi - ora la usano, il che non era decisamente lo scopo. Gli amministratori sono molto legittimi e insistono sul fatto che mantengano questo "per sicurezza" perché il salvataggio della password "non è sicuro".

Sono fuorviati, perché

  • i logger per tastiera esistono e sono molto diffusi, probabilmente più diffusi dei malware in grado di leggere l'archivio password di Firefox.
  • esistono anche semplici attacchi da parte del nipotino: basta guardarsi alle spalle
  • forse ancora più importante, costringendo gli utenti a reinserire la loro password ogni volta che praticamente li costringe a usare una password semplice - facile da ricordare, facile da digitare, probabilmente persino utilizzata su più siti Web. Questo ovviamente abbassa la sicurezza generale drammaticamente e quindi rappresenta un pericolo per la sicurezza.

Pertanto, il completamento automatico = off è attivamente dannoso per la sicurezza.

E una grande sofferenza per gli utenti finali, senza una ricaduta per loro a parte l'interruzione delle relazioni con i clienti.

Ci sono state molte soluzioni alternative (di solito basate su bookmarklet) che sono state pubblicate su Internet. IE11 ha già rimosso il supporto per autocomplete=off .

La domanda è duplice:

  • C'è un aumento significativo della sicurezza per un sito Web quando utilizza autocomplete=off nei campi password? O è effettivamente dannoso per la sicurezza secondo il commento di BenB?
  • I browser dovrebbero consentire questo attributo per impostazione predefinita e dare così tanto controllo al sito Web? (Questo bit è soggettivo, sentiti libero di non rispondere)

Mentre la mia situazione è specifica di autocomplete=off per i campi nome utente/password (il codice riguarda solo il gestore password), accolgo con favore l'input sull'aspetto più ampio della disabilitazione di autocomplete=off

102
Manishearth

Il problema è che questa impostazione controlla simultaneamente il comportamento di due funzioni simili ma sufficientemente diverse nel browser in modo tale da rendere difficile ottenere un risultato ottimale.

Innanzitutto, abbiamo quello che potresti definire "intelligente" o "ingenuo" o "automatico" di completamento automatico.

Questa è la tecnologia originale di completamento automatico. Mentre compili i moduli su vari siti, il browser osserva i nomi dei moduli e i contenuti che riempi e ricorda silenziosamente i dettagli. Quindi, quando si visita un altro sito con un modulo simile, riempie "utilmente" i campi utilizzando i valori che ha ottenuto dal comportamento precedente su altri siti.

L'idea qui è di farti risparmiare tempo senza alcuna configurazione o processo decisionale da parte tua. Stai compilando il tuo nome? Inseriremo automaticamente il nome che hai usato l'ultima volta. Compilare una carta di credito? Compileremo la carta di credito che hai usato altrove.

Nel suo zelo per essere utile, il browser sta condividendo i tuoi segreti da un sito con tutti gli altri, nel caso fosse quello che volevi. Dal punto di vista della sicurezza, questo è un disastro per tutte le ovvie ragioni e anche per molte altre non ovvie. Deve essere disabilitato e probabilmente non avrebbe mai dovuto essere implementato per cominciare.

In secondo luogo, abbiamo il completamento automatico "esplicito" o "sicuro" o "configurato"

Questo è principalmente il mondo dei nomi utente e delle password salvati. In questa incarnazione, il browser salva i dati del tuo modulo solo con la tua esplicita approvazione. Idealmente, archivia tali dati in un archivio crittografato e, soprattutto, i dati sono saldamente associati a un singolo sito. Quindi la tua password di Facebook rimane con Facebook e il tuo indirizzo Amazon rimane con Amazon.

Questa tecnica è molto diversa in quanto il browser sta riproducendo il comportamento salvato quando viene rilevato l'ambiente corrispondente. In confronto, l'altra tecnica è anticipare automaticamente il comportamento desiderato cercando similitudini.

Quando visiti il ​​sito e presenta un modulo di accesso, il tuo browser dovrebbe compilare automaticamente i dati che hai salvato esplicitamente a tale scopo. L'interazione dovrebbe essere rapida e senza pensieri per l'utente. E, in modo critico , dovrebbe assolutamente INTERROMPERE in un tentativo di phishing. Il browser dovrebbe essere così completamente riluttante a fornire credenziali a un sito di phishing in modo tale che la fermi e pensi a perché la cosa non funziona.

Questa funzione è la tua linea di difesa primaria contro il phishing. Deve funzionare. Inevitabilmente sei meno sicuro se l'utente non può dipendere da questa funzione che funziona in modo trasparente e senza sforzo in condizioni normali.

E mentre questo viene utilizzato principalmente per l'archiviazione delle credenziali, è anche un luogo sicuro dove inserire anche altri dati sicuri, come carte di pagamento, indirizzo, domande di sicurezza, ecc. Tali dati aggiuntivi probabilmente non saranno specifici del sito, ma dovrebbero probabilmente non si riempie automaticamente senza chiedere conferma.

Un'opzione per dominarli tutti

Il problema qui è che in molte implementazioni, il autocomplete=false controlli opzione entrambi comportamenti. Sia quello che vuoi conservare, sia quello che vuoi uccidere.

Idealmente, il completamento automatico "sicuro" non dovrebbe mai essere disabilitato. Facciamo affidamento su questa funzione per aggiungere sicurezza, quindi gli operatori del sito fuorviati non dovrebbero essere autorizzati a comprometterlo.

E idealmente, il completamento automatico "automatico" dovrebbe essere disabilitato per impostazione predefinita, per essere abilitato solo per quelle rare condizioni (se presenti) in cui desideri il browser per riutilizzare i tuoi input da altri siti.

56
tylerl

Quando eseguo i test con la penna, segnala un problema se un campo modulo richiede dati sensibili (ad esempio un numero di carta di credito), NON è un campo password e NON ha il completamento automatico = off.

Il razionale è che i browser gestiscono il completamento automatico delle password in modo abbastanza ragionevole: offrono all'utente la possibilità di memorizzare la password e (la maggior parte) degli utenti può prendere una decisione ragionevole.

Tuttavia, per i campi senza password il comportamento di completamento automatico non è auspicabile. Se lascio che qualcuno usi il mio computer, accedono a una pagina di checkout e-commerce e vedono i dettagli della mia carta di credito compilati automaticamente, il che è negativo.

42
paj28

Il motivo per cui i browser stanno ignorando autocomplete=off è perché ci sono stati alcuni siti Web che hanno tentato di disabilitare il completamento automatico delle password.

Questo è sbagliato; e nel luglio 2014 Firefox è stato l'ultimo importante browser a implementare finalmente la modifica per ignorare qualsiasi sito Web che tenta di disattivare il completamento automatico delle password.

Qualsiasi tentativo da parte di qualsiasi sito Web di eludere le preferenze del browser è errato, ecco perché i browser lo ignorano. Non è noto perché un sito Web debba tentare di disabilitare il salvataggio delle password.

  • Chrome lo ignora
  • Safari lo ignora
  • IE lo ignora
  • Firefox lo ignora

E se fossi uno speciale fiocco di neve ?

Ci sono persone che presentano un buon caso d'uso:

Ho un computer condiviso, in stile pubblico, in stile chiosco. Non vogliamo che qualcuno salvi (accidentalmente o intenzionalmente) la propria password in modo che il prossimo utente possa utilizzarla.

Ciò non viola l'affermazione:

Qualsiasi tentativo da parte di qualsiasi sito Web di eludere le preferenze del browser è errato

Questo perché nel caso di un chiosco condiviso:

  • non è il web-server che ha la politica di oddball
  • è l'agente utente client

Il browser (il computer condiviso) è quello che ha il requisito che it non tenti di salvare le password. Il modo corretto per impedire a browser di salvare le password è configurare browser per non salvare le password. Dato che hai bloccato e controllato questo computer kiosk: controlli le impostazioni. Ciò include l'opzione di salvataggio delle password.

In Chrome e Internet Explorer, puoi configurare tali opzioni usando Criteri di gruppo (ad es. Chiavi di registro).

Dall'elenco delle norme di Chrome :

AutoFillEnabled

Abilita riempimento automatico

Tipo di dati: Booleano (REG_DWORD)

Posizione del registro di Windows: Software\Policies\Chromium\AutoFillEnabled

Descrizione: Abilita la funzione di riempimento automatico di Chromium e consente agli utenti di completare automaticamente i moduli Web utilizzando le informazioni precedentemente memorizzate come l'indirizzo o le informazioni della carta di credito. Se disattivi questa impostazione, la Compilazione automatica sarà inaccessibile agli utenti. Se si abilita questa impostazione o non si imposta un valore, la Compilazione automatica rimarrà sotto il controllo dell'utente. Ciò consentirà loro di configurare i profili di riempimento automatico e di attivare o disattivare il riempimento automatico a propria discrezione.

Passa la parola che il tentativo di disabilitare il completamento automatico della password è sbagliato, i browser ignorano intenzionalmente chiunque tenti di farlo e dovrebbero smettere di fare la cosa sbagliata. ™

Se tu vuoi tuo browser per non completare automaticamente gli elementi, allora tu dovrebbe configurare tuo = browser per disattivare il completamento automatico. Nessun sito web dovrebbe imporre tale preferenza ad altri utenti.

8
Ian Boyd

Ho fatto diversi tentativi per diverse banche e consigliamo sempre di disabilitare il completamento automatico. La ragione di ciò è che la maggior parte degli utenti non utilizza un gestore di password e quindi la password viene salvata nel browser da qualche parte, testo normale (alcuni browser in realtà crittografano le password di completamento automatico, ma ciò è stato fatto solo di recente).

Questo è consigliato anche dalla guida test OWASP :

La memorizzazione nella cache dei campi modulo è presente nella maggior parte dei browser. Per i campi modulo contenenti informazioni riservate, come i numeri di carta di credito, il completamento automatico deve essere disabilitato utilizzando l'attributo AUTOCOMPLETE = OFF che può essere utilizzato in ogni tag INPUT 1 . Questa funzionalità non riuscirà la convalida rispetto alle versioni correnti delle specifiche HTML, ma ora è supportata dalla maggior parte dei browser.

Finché le informazioni sensibili sono protette, non ci sono problemi. Il problema più grande con questa impostazione è quando si utilizza un computer condiviso. Il rischio di avere le tue informazioni nella cache è abbastanza significativo e un bypass meno innocente potrebbe semplicemente rubare le tue informazioni. Ricorda che la maggior parte degli utenti non è così istruita come la maggior parte delle persone qui.

Ora la banca non può effettivamente verificare se stai utilizzando il tuo personal computer o uno condiviso, quindi la valutazione del rischio su questo ha ritenuto migliore disabilitare la funzione di completamento automatico.

7
Lucas Kauffman

Tutti sembrano dimenticare che i computer vengono rubati su base giornaliera, la maggior parte dei computer esegue Windows. È possibile modificare la password di un utente senza effettuare l'accesso su un computer Windows.

Quanto danno pensi possa essere fatto da un computer rubato con tutte le informazioni di completamento automatico salvate nel browser? E la maggior parte non ha nemmeno una protezione con password per il completamento automatico del browser, quindi non fa alcuna differenza se i dati sono crittografati o meno quando il browser inserisce i dati per tutti i siti.

Già oggi le frodi su Facebook e Twitter sono comuni. Le password salvate sono una ragione per questo.

E cosa succede se un CEO salva le sue password e qualcuno ruba il suo computer? Questa funzione serve a proteggere chiunque dal dirottamento dei propri account.

0
Nisse