• Tempo di lettura: 2 minuti

Visualizzare le password dei moduli salvati: come creare un bookmarklet

Ecco come creare un semplice “plugin” per il browser per riuscire a leggere le password salvate nei moduli autocompilati.

Un bookmarklet è un link HTML che al click richiama una funzione Javascript e che quindi esegue delle operazioni sul DOM della pagina.

La mia esigenza era quella di trasformare un campo <input type="password"> in un <input type="text"> così da poter leggere la password, che avevo precedentemente salvato quando l’ho compilato, e che il browser ricorda e autocompila per me. Così la posso copiare e incollare altrove.

Per fare questo mi sono programmato un bookmarklet che modificasse la proprietà type dell’input.

E per creare un bookmarklet basta programmare una pagina HTML e un po’ di Javascript. La pagina HTML servirà a creare un semplice link che richiamerà il file esterno Javascript. Sarà possibile quindi trascinare il link nella barra dei preferiti per poi cliccarlo quando serve.

Ecco cosa inserire nella pagina HTML:

<a href="javascript: (function () { var jsCode = document.createElement('script'); jsCode.setAttribute('src', 'showpassword.js'); document.body.appendChild(jsCode); }());">
  Show hidden password
</a>

ed ecco il codice Javascript:

console.log('Bookmarklet made by andrearufo.it');
var inputs = document.querySelectorAll('input[type=password]');
if (inputs.length > 0) {
    console.log('Ok...')
    for (i=0; i<=inputs.length; i++){
        inputs[i].setAttribute('type', 'text');
    }
}else{
    console.log('No password fields...')
}
console.log('--> Done')

Come detto, il link richiama un Javascript esterno che si trova su un server remoto: è quindi necessario indicare l’indirizzo completo.

Sarebbe anche possibile scrivere tutto il codice in linea e quindi non usare un file js. Ma allora perche usarlo? Perchè, così facendo sarà possibile modificare il solo file esterno js e aggiornare il bookmarklet per tutti quelli che lo usano e su tutte le postazioni.

Se anche tu hai creato un nuovo bookmarklet simile mandami un tweet: magari mi torna comodo!