I siti web possono disabilitare il completamento automatico su moduli o campi?

97

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

Alcune banche sembrano usarlo per impedire il funzionamento dei gestori di password. In questi giorni siti come Yahoo Mail sembrano farlo anche perché ritengono che i gestori di password non siano sicuri.

Alcune settimane fa ho implementato una funzione in Firefox che offre all'utente la possibilità di sovrascrivere questa solo per campi nome utente / password (ovvero per disabilitare il gestore password). Ora c'è una richiesta che chiede di sovrascrivere autocomplete=off per impostazione predefinita. Citando il problema:

This behavior is a concession to sites that think password managers are harmful and thus want to prevent them from being effective. In aggregate, I think those sites are generally wrong, and shouldn't have that much control over our behavior.

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

autocomplete=off has been abused a lot recently. Yahoo started using it for their login (including webmail and my.yahoo.com), which is why I stopped using Yahoo. Webmail apps - even some bigger providers - now use it, which was decidedly not the purpose. The admins are very self-righteous, and insist that the keep this "for security" because password saving "is unsafe".

They are misguided, because

  • keyboard loggers exist and are widespread, probably more widespread than malware that can read Firefox password store.
  • even simple attacks by the little nephew exist: Just look over the shoulder
  • possibly most importantly, forcing users to re-enter their password every time practically forces them to use a simple password - easy to remember, easy to type, probably even used on multiple websites. This obviously lowers overall security dramatically and thus poses a danger to security.

So, autocomplete=off is actively harmful for security.

And a massive pain for end users, without a recurse for them apart from severing entire customer relationships.

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 di un sito web quando utilizza autocomplete=off sui campi della password? O è effettivamente dannoso per la sicurezza come nel commento di BenB?
  • I browser dovrebbero consentire questo attributo per impostazione predefinita e dare così tanto controllo al sito web? (Questo bit è soggettivo, non esitare a rispondere)

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

    
posta Manishearth 25.01.2014 - 10:20
fonte

5 risposte

52

Il problema è che questa impostazione controlla simultaneamente il comportamento di due funzioni simili ma sufficientemente dissimili nel browser in modo tale da ottenere risultati ottimali.

In primo luogo, abbiamo ciò che potremmo chiamare completamento automatico "intelligente" o "ingenuo" o "automatico".

Questa è la tecnologia di completamento automatico originale . Mentre si compilano i moduli su vari siti, il browser controlla i nomi dei moduli e dei contenuti che si riempiono e ricorda silenziosamente i dettagli. Quindi, quando visiti un altro sito con un aspetto simile, riempie "utile" i campi usando i valori che ha filtrato dal comportamento precedente su altri siti.

L'idea qui è di farti risparmiare tempo senza alcuna configurazione o processo decisionale da parte tua. Riempiendo il tuo nome? Inseriremo automaticamente il nome che hai utilizzato l'ultima volta. Compilando una carta di credito? Inseriremo la carta di credito utilizzata altrove.

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

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

Questo è il mondo, principalmente, di nomi utente e password salvati. In questa incarnazione, il browser salva i dati del modulo solo con la tua approvazione esplicita. Idealmente, memorizza i dati in un archivio crittografato e, cosa più importante, i dati sono strettamente 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 il comportamento desiderato automaticamente cercando le somiglianze.

Quando visiti il sito e presenta un modulo di accesso, il tuo browser dovrebbe auto-compilare automaticamente i dati che hai salvato in modo esplicito a tale scopo. L'interazione dovrebbe essere rapida e senza pensieri per l'utente. E, in modo critico , dovrebbe assolutamente BREAK in un tentativo di phishing. Il browser dovrebbe essere così riluttante a fornire credenziali a un sito di phishing in modo tale da costringerla a fermarsi e pensare a perché la cosa non funziona.

Questa funzione è la linea di difesa primaria contro il phishing. Deve funzionare. Sei inevitabilmente 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 è principalmente utilizzato per l'archiviazione delle credenziali, è anche un posto sicuro dove mettere anche altri dati sicuri, come carte di pagamento, indirizzi, domande di sicurezza, ecc. Tali dati aggiuntivi probabilmente non saranno specifici del sito, ma probabilmente non dovrebbe auto-compilare senza chiedere conferma.

Un'opzione per domarli tutti

Il problema qui è che in molte implementazioni l'opzione autocomplete=false controlla i comportamenti entrambi . Sia quello che vuoi mantenere, sia quello che vuoi uccidere.

Idealmente, il completamento automatico "sicuro" non dovrebbe mai essere disabilitato. Facciamo affidamento su questa funzionalità per aggiungere sicurezza, quindi non si dovrebbe permettere agli operatori del sito errati di metterlo a repentaglio.

E idealmente, il completamento automatico "automatico" dovrebbe essere disabilitato di default, per essere abilitato solo per quelle rare condizioni (se presenti) in cui vuoi il browser per riutilizzare il tuo input da altri siti.

    
risposta data 20.02.2014 - 02:39
fonte
42

Quando eseguo i test delle penne, segnalerò un problema se un campo modulo richiede dati sensibili (ad esempio un numero di carta di credito), NON è un campo password e NON ha completamento automatico = disattivato.

Il razionale è che i browser gestiscano il completamento automatico delle password in modo abbastanza ragionevole: danno all'utente la possibilità di memorizzare la password e (la maggior parte) gli utenti possono prendere una decisione sensata.

Tuttavia, per i campi non password il comportamento del completamento automatico non è auspicabile. Se lascio che qualcuno usi il mio computer, accede a una pagina di checkout e-commerce e visualizza i dettagli della mia carta di credito in fase di completamento automatica: è un problema.

    
risposta data 26.01.2014 - 22:13
fonte
7

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

Questo è anche consigliato dalla guida OWASP testing :

Caching of form fields is present in most browsers. For form fields containing sensitive information - like credit card numbers - autocomplete should be disabled using AUTOCOMPLETE=OFF attribute that can be used in every INPUT tag1. This feature will fail validation against current versions of HTML specifications, it's now supported by most browsers though.

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 non meno innocente potrebbe semplicemente rubare le tue informazioni. Ricorda che la maggior parte degli utenti non è 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 meglio disabilitare la funzionalità di completamento automatico.

    
risposta data 25.01.2014 - 10:29
fonte
5

Il motivo per cui i browser ignorano autocomplete=off è dovuto al fatto che alcuni siti Web hanno tentato di disabilitare il completamento automatico delle password.

Questo è sbagliato; e nel luglio 2014 Firefox è stato l'ultimo browser principale 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 è sbagliato, ecco perché i browser lo ignorano. Non c'è alcun motivo per cui un sito web dovrebbe cercare di disabilitare il salvataggio delle password.

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

Che cosa succede se sono uno speciale fiocco di neve ?

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

I have a shared, public area, kiosk style computer. We don't want someone to (accidentally or intentionally) save their password so they next user could use it.

Questo non viola la dichiarazione:

Any attempt by any web-site to circumvent the browser's preference is wrong

Questo perché nel caso di un chiosco condiviso:

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

Il browser (il computer condiviso) è quello che ha il requisito che esso non provi a salvare le password. Il modo corretto per impedire al browser di salvare le password è configurare il browser per non salvare le password. Poiché 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 utilizzando i Criteri di gruppo (ad esempio, le chiavi del Registro di sistema).

Da Elenco norme di Chrome :

AutoFillEnabled

Enable AutoFill

Data type: Boolean (REG_DWORD)

Windows registry location: Software\Policies\Chromium\AutoFillEnabled

Description: Enables Chromium's AutoFill feature and allows users to auto complete web forms using previously stored information such as address or credit card information. If you disable this setting, AutoFill will be inaccessible to users. If you enable this setting or do not set a value, AutoFill will remain under the control of the user. This will allow them to configure AutoFill profiles and to switch AutoFill on or off at their own discretion.

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

Se tu vuoi il tuo browser per non completare automaticamente gli elementi, allora tu devi configurare il tuo browser per disattivare completamento automatico. Nessun sito web dovrebbe forzare questa preferenza su altri utenti.

    
risposta data 06.11.2015 - 15:46
fonte
0

Tutti sembrano dimenticare che i computer vengono rubati sulle basi quotidiane, la maggior parte dei computer esegue Windows. Puoi cambiare la password di un utente senza mai accedere su un computer Windows.

Quanto danno pensi che 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 riempie 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 amministratore delegato salva le sue password e qualcuno ruba il suo computer? Questa funzione serve a proteggere tutti gli utenti dall'assottigliare i loro account.

    
risposta data 07.03.2014 - 01:04
fonte

Leggi altre domande sui tag