Il tuo obiettivo è controllare efficacemente il comportamento del browser e impedire che memorizzi la password che è stata inserita e inviata dall'utente ovunque (né cache né password). Poiché si tratta di software lato client, generalmente non è possibile. Ma possiamo elaborare una soluzione che realizzerà ciò che desideri nella maggior parte dei casi. Tieni presente che non avrai mai il pieno controllo su ciò che il browser memorizza nella RAM, ma questo non è davvero un problema. Un utente malintenzionato in grado di compromettere la RAM è anche in grado di registrare le sequenze di tasti.
Impedisci che si verifichi un evento di invio
La maggior parte dei browser nota quando invii un modulo, perché fai clic su un pulsante speciale ( type="submit"
). Questo probabilmente prometterà all'utente "Vuoi memorizzare la password per questo sito?". Per evitare ciò, puoi implementarlo da solo. Non impostare type="submit"
ma creare un pulsante <button onclick="performLogin()"
che, se selezionato, cattura i valori dei campi di input e li avvolge in una richiesta HTTP-POST sul tuo sito. Se l'accesso ha esito positivo, restituire la chiave di sessione e scriverla su un cookie o qualsiasi altra cosa si adatti alle proprie esigenze. Utilizzando questo approccio, non si attiva mai un vero "evento di invio", ma solo un evento di clic che non promette all'utente di salvare la password.
La domanda cache è più complicata e temo, non vedo una soluzione coerente e affidabile per questo, poiché un browser non consente a un sito Web casuale di dettare in che modo organizza la RAM. Tuttavia, non riesco a vedere un enorme inconveniente quando lo ignoro. Come accennato in precedenza, il codice dannoso in grado di leggere RAM arbitraria è probabilmente (non sempre) in grado di registrare le sequenze di tasti, compromettendo la password, che è ciò che si sta tentando di evitare.
P.S .: Prestare sempre attenzione quando si implementano misure di sicurezza o meccanismi di autenticazione da soli. Come ha correttamente detto geteguru, "l'implementazione della propria soluzione di sicurezza potrebbe avere delle insidie". Lo aumenterei per "assolutamente le insidie in grado di rovinarti in vari modi che non ti saresti mai aspettato, se non gestito correttamente".