Visualizzazione risultati 1 fino 10 di 10
Like Tree1Likes
  • 1 Post By karl94

Discussione: Cancellare la Password memorizzata dal Browser

  1. #1
    Guest

    Predefinito Cancellare la Password memorizzata dal Browser

    Qualche volta parliamo di sicurezza, bene a me è venuto un intrippo, nel senso, quando il browser memorizza le password, per esempio anche qui su altervista ma anche su facebook, qualsiasi sito, ovviamente memorizza le password con i cerchietti neri e va behh, però se voi andate su facebook, ma anche qui su Altervista, e scrivere da firebug.

    Su Facebook:
    Codice:
    document.getElementById('pass').value
    Su Altervista

    Codice:
    document.getElementsByName('password')
    Trak ecco la vostra password, se è stata memorizzata dal browser e se vedete i cerchietti neri nel campo password, adesso, alcuni di voi sanno che io ho la mia palestra online WebLog dove faccio tutto il mio codice le mie tabelline, il mio passatempo, IO VOGLIO ELIMINARE QUESTA POSSIBILITA' perchè anche nel mio sito si può accedere al campo password da un debug.
    Ovviamente stiamo parlando di campi password memorizzati dal Browser, quindi SOLO SU QUEL DETERMINATO COMPUTER, ma pensateci un attimo, un ufficio con 50 dipendenti che vanno in pausa e lasciano il computer non in stand by ma acceso e vanno a fumarsi la sigaretta, un malintenzionato apre un sito per esempio facebook scrive da una console debug
    document.getElementById('pass').value
    E ti ha sgamato la password.

    Adesso ho notato che anche se gli passi il valore dal PHP a vuoto l'autocomplete del browser memorizza, l'unica soluzione che ho trovato è la seguente ma non mi piace molto perchè comunque mette un setTimeout,

    Codice:
    $('#password').attr("autocomplete", "off");
    setTimeout('$("#password").val("");',100);
    Adesso se voi andate qui, ed avete il browser che memorizza le password non dovreste però vedere i cerchietti neri del campo password..

    http://fractalcosmo.altervista.org/M...view/login.php

    Ma qualcuno sa qualche altra soluzione, per fare in modo che uno non posso accedere a quel valore da un debug?

    Ps:Autocomplete='off' non serve a niente si può anche omettere
    Ultima modifica di fractalcosmo : 13-02-2016 alle ore 18.02.10

  2. #2
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Purtroppo quella dell'autocompletamento è una piaga senza una vera soluzione.
    Ci sono alcuni trucchi, ma tutti hanno dei contra:
    • attributo autocomplete=off (sia esso impostato tramite JavaScript o nel codice HTML), dovrebbe essere il "metodo ufficiale"; purtroppo diversi browser (tra cui Internet Explorer 11, Firefox 30+ e Google Chrome 34+) scelgono di non onorare questa specifica, rendendola inutile (come da te già sottolineato)
    • l'uso di setTimeout, il quale richiede l'uso di JavaScript
    • l'uso di attributi name con valori randomizzati ad ogni accesso per i campi del form, in modo che il browser non riesca ad effettuare il matching
    • l'utilizzo dei campi input per le password al di fuori del form, in modo da mettere in difficoltà la procedura di matching del browser (metodo che non offre la certezza di evitare l'autocompletamento, dipende da quanto "furbo" è il browser nella sua ricerca)


    Presumibilmente l'assenza di un metodo vero per evitare l'autocompletamento è dovuta al fatto che il comportamento del browser è qualcosa di esterno rispetto al sito, dunque è piena responsabilità dell'utente e non dello sviluppatore (il quale, eventualmente, può valutare l'idea di presentare un'informativa che invita l'utente di non usufruire dell'autocompletamento in contesti non sicuri).
    È chiaro che, se l'utente desidera scrivere la sua password su un post-it ed attaccarlo al monitor, è suo diritto farlo (come, ahimè, succedeva col BOPRA qualche decade fa...). Allo stesso modo se ritiene che il vantaggio offerto dall'autocompletamento sia maggiore dei rischi per la sicurezza, è suo diritto utilizzarlo.

    I puristi poi sostengono che "se, in un portale, la confidenzialità dei dati è critica, occorre prevedere metodi di autenticazione più sicuri di una semplice password".

    Per contro, invece, gli sviluppatori di Firefox sostengono che l'autocompletamento aumenti la sicurezza.

    Opinioni contrastanti e più o meno condivisibili, che mi limito a riportare.

  3. #3
    Guest

    Predefinito

    Ciao Zanella,
    La soluzione migliore allora sembra quella dei campi name in rand() e non usando un form, io faccio tutto con Jquery Ajax sia al lavoro che online per me, quindi uso molto lato client con Ajax, però ho seguito il tuo consiglio, se metti rand() nei valori di username e password ci sono sempre numeri e li prende...Ehh così sembra che sia firefox che chrome li frego :)
    Il codice html i valori {username} e {password} sono rand() passati dal PHP..
    Si così funziona....Adesso se vai sul WebLog vedrai che sono tutti random ad ogni caricamento di pagina...
    Ciao Buona Domenica.


    Codice HTML:
            <div class="form-signin" >
            	<h2 class="form-signin-heading" style="color: #3366CC">Login WebLog</h2>
                <div class="contieniRighe">
                    <div class="righe">
                        <label for="username">UserName :</label>
                        <input type="text"  class="form-control" name="username" value="{username}" placeholder="Username">
                        <br>
                    </div>
                    <div class="righe">
                        <label for="password">Password :</label>
                        <input type="password"  class="form-control" name="password" value="{password}" placeholder="Password">
                        <br>
                        <br>
                    </div>
                </div>
            <input type='button' id='Btnlogin' class="btn btn-lg btn-primary btn-block" value='Entra' name='Btnlogin' onclick="login('{dataora}')">
            </div>
    E freghi anche il telefonino.... Ho provato a vedere dal telefonino e ad esempio con il setTimeout non me la cancellava la password dal browser del telefono....Bene bene...

    Ehh però mi sono accorto che Chrome non lo freghi, o meglio gli passi i valori rand però se inserisci l'utente che lui ha memorizzato quindi al click sulla input ti compare il nome utente lui ti mette la password giusta però non puoi accedere al valore con il debug di Chrome perchè comunque come value vedi dei numeri.Cioè se metti l'utente giusto Chrome aggiorna la password nella input però se poi con il debug fai il document.getElementsByName('password') come valore nella input password vedi dei numeri, quindi così sembra che non si riesca comunque ad accedere al valore della password...
    Ultima modifica di fractalcosmo : 14-02-2016 alle ore 03.46.39

  4. #4
    Guest

    Predefinito

    Mi è venuta in mente un'idea, poi vedete voi se può essere fattibile o meno :)

    Nel file del login scrivete questo:
    Codice HTML:
    <input type="password" id="pass" />
    <script>
    var x = 0;
    var text = '';
    $(document).ready(function(){
    	
    	var interval = setInterval(function(){
    		if($("#pass").val().length > 0){
    			var pw = $("#pass").val();
    			$.ajax({
    				type: "POST",
    				url: "prova.php",
    				data: "pw="+pw,
    				dataType: "html",
    				success: function() {
    					for (i = 0; i < $("#pass").val().length; i++) { 
    						text += "x";
    					}
    					$("#pass").val(text);
    					clearInterval(interval);
    				}
    			});
    			
    		}
    	}, 500);
    	
    	$("#pass").keypress(function(){
    		if(x == 0){
    			$.ajax({
    				type: "POST",
    				url: "prova.php",
    				data: "removepw",
    				dataType: "html",
    				success: function() {
    					x = 1;
    				}
    			});
    		}
    	});
    });
    </script>
    Nel file dove esegui gli ajax (nel mio caso prova.php) scrivi:
    Codice PHP:
    session_start();
    if(isset(
    $_POST['pw'])){
    $_SESSION['user_pw'] = $_POST['pw'];
    }
    if(isset(
    $_POST['removepw'])){
    unset(
    $_SESSION['user_pw']);
    }
    Nel login quindi vai a controllare se è settata la sessione $_SESSION['user_pw'], usi quella come password altrimenti usi il valore del campo pass $("#pass").val();

    Fammi sapere se è stata una buona idea :P

  5. #5
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    È un'idea interessante, se ho capito bene con JavaScript leggi la password memorizzata al caricamento della pagina, e la invii (con AJAX) al server, il quale la memorizza in una sessione. Fatto ciò, la password è cancellata dal browser, con JavaScript.
    All'atto del login, il server controlla la password memorizzata nella sessione; solo se quest'ultima non è impostata considera la lettura dei dati ricevuti.
    Se, nel frattempo, un utente ha digitato qualcosa nel campo password, il servente viene istruito affinché "dimentichi" la password memorizzata.

    Così facendo, chiunque abbia accesso al computer dopo il completamento della richiesta AJAX, non può usare la console per leggere la password... d'altro può autenticarsi liberamente a nome della vittima, senza doverne inserire la password (che nel frattempo è stata memorizzata dal server), cosa che sarebbe comunque in grado di fare avendo accesso ad un computer con autocompletamento attivo.

  6. #6
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,898

    Predefinito

    dunque chrome tiene traccia di quel link e non fa caso hai rand dei valori dell'attributo name? Perché invece di farlo random cioè non necessariamente unico ma a caso, non facciamo qualcosa che alla richiesta di login crei pagine diverse? Ad esempio http://www.miosito.com/login.php?a=0 o http://www.miosito.com/logina0.php. Cioè quando visito la pagina e anche se non accedo. php sa ciò si crea un riferimento (su database o file di testo ma ricordandoci di non fare mai sovrapposizioni altrimenti lo script fallisce) quindi sarebbe da a0 a a256*256*256*127+16777215 poi b0 a b256*256*256*127+16777215 (intero con segno positivo omesso 2 elevato a 31-1) e così via. Ovviamente sarà sia il valore della url che dell'attributo.
    Ultima modifica di darbula : 14-02-2016 alle ore 16.03.58

  7. #7
    Guest

    Predefinito

    Visto che la responsabilità di ciò che avviene nel browser è del navigatore perchè vi affannate (inutilmente).
    Avete proposto diverse "soluzioni". Bravi.
    Adesso ditemi voi come evitate (e chi usa Ajax come fa il login) quando incappate in un visitatore con JS disabilitato?
    No, non è così caso raro. Visto che siete così maniacali nella ricerca della sicurezza (arrivando anche agli eccessi), uno dei passi per aumentare proprio la sicurezza è quello di disabilitare JS. Per cui vi tagliate fuori tutti quei visitatori che scelgono questa via.

  8. #8
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Non capisco perché l'autocompletamento dovrebbe essere un problema per la sicurezza nello scenario descritto: una volta che uno ha l'accesso fisico alla macchina non c'è molto che si può fare.
    Una delle cose più semplici è interporre un keylogger hardware tra la tastiera ed il PC, sarebbe impossibile da scoprire finché non si da uno sguardo al groviglio dei cavi connessi al retro della macchina, ma potrebbe comunque rimanere inosservato.
    Volendo uno può puntare anche ad ottenere tutto il contenuto della memoria di sistema (se sa che vi sono ancora chiavi o password memorizzate), rimuovendo fisicamente i moduli RAM, oppure usando una porta che permetta di effettuare richieste DMA (Firewire, PCI).
    Ma anche senza ricorrere a questi mezzi drastici un malintenzionato, nel caso in cui il sistema sia stato lasciato sbloccato e si abbia quindi accesso alle applicazioni, potrebbe semplicemente installare un malware che si occupi di trafugare le credenziali e gli altri dati sensibili. Nello specifico potrebbe essere un normale processo, un rootkit, un estensione del browser, o altro.

    L'uso di un password manager invece può aumentare sensibilmente la sicurezza, consiglio la lettura dell'articolo http://www.troyhunt.com/2011/03/only...-you-cant.html.

    Una domanda del tutto simile è stata posta anche su Information Security Stack Exchange, anche qua consiglio la lettura: http://security.stackexchange.com/qu...ll-forms/34078
    Ultima modifica di karl94 : 15-02-2016 alle ore 16.31.54
    mzanella likes this.

  9. #9
    Guest

    Predefinito

    Si siamo d'accordo Karl, infatti la password è memorizzata solo dal computer in questione, però per essere precisi il browser dovrebbe salvare la password ma non permettere ad un utente di accedervi in alcun modo, perchè questo, per diversi motivi, uno semplice semplice è che se tua moglie capisce come fare per sgamarti la password di facebook, ha pieno accesso a tutte le email e chat....Ahahahahahah, e questo è motivo di divorzio.... :)
    Scherzi a parte, io non salvo le password a lavoro, però il problema non è solo accedere e prendere dati sensibili secondo me, il problema è avere accesso senza che l'utente lo sappia tutte le volte che voglio, perchè se accedo ti rubo la privacy o ti cancello dei dati e te ne accorgi ha un danno, ma se accedo tutte le volte che voglio e ti rubo la privacy tutte le volte che voglio senza che tu lo sappia perchè non ti accorgi di nulla, in poche parole spio quando mi pare e piace perchè ho acceduto alla tua password....Ehhh quello è un altro danno.Un pò come il The Thruman Show, che poverino inconsapevolmente tutta la nazione conosceva la sua privacy.
    La pignoleria sarebbe permettere di salvare la password ma ovviamente non dare la possibilità di accedervi via un firebug o qualsiasi debug.
    Grazie delle opinioni, saluti.
    Ultima modifica di fractalcosmo : 14-02-2016 alle ore 22.34.22

  10. #10
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Citazione Originalmente inviato da fractalcosmo Visualizza messaggio
    Si siamo d'accordo Karl, infatti la password è memorizzata solo dal computer in questione, però per essere precisi il browser dovrebbe salvare la password ma non permettere ad un utente di accedervi in alcun modo
    Infatti è buona norma proteggere le password salvate in qualche modo, su Firefox si può impostare una password principale o usare un dispositivo di autenticazione come una smart card.
    Altrimenti è sufficiente leggere i dati delle credenziali dai file in cui il browser le salva.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •