Ad esempio, supponiamo di aver già digitato username e password su questa pagina di Facebook:
Ma ho fatto clic erroneamente su "Crea nuovo account" invece di accedere. La mia domanda è, aumenta i rischi per la sicurezza?
Ammetto che questa domanda sembrava avere una risposta semplice all'inizio, ma dopo aver esaminato la pagina di Facebook e la funzionalità del pulsante è sicuramente fa mendicare la domanda.
Ho scoperto che se hai i campi nome utente / password compilati con le credenziali di un account legittimo, o hai un nome utente / password di riempimento automatico in atto che tira da Chrome o da un gestore di password, che può / non può essere una buona pratica a seconda del livello di sicurezza della paranoia - quindi selezionando il pulsante "Crea nuovo account" in realtà si invia un messaggio POST che include i dettagli delle informazioni di accesso dalla pagina precedente, inclusi nome utente / password. Se sei curioso e non lo sai già, puoi farlo semplicemente monitorando le richieste di rete nel tuo browser.
Nonostante ciò, direi che dipende dall'applicazione con cui stai interagendo. In questo caso, dal momento che è Facebook e, sebbene questo possa essere un punto di contesa all'interno della community, possiamo fidarci di Facebook con i nostri dati, finché la richiesta POST che ha avuto il mio nome utente / password nel suo payload è stata fatta su sicuro trasmissione posso presumere di non essere preoccupato per un rischio per la sicurezza. Immagino solo che a questo punto le informazioni inviate a Facebook tramite questa richiesta POST debbano essere altrettanto sicure quanto il pulsante di accesso stesso.
Non ho mai incontrato un altro sito che faccia questo, ma spero di vedere altre risposte su questa base in base ad altre esperienze.
L'azione che esegui non è più rischiosa del clic sul pulsante di accesso.
I dati verranno archiviati solo lato client in quanto non si esegue una richiesta HTTP POST per tale modulo.
Modifica:
Il mio corpo Richiesta quando fai clic su Iscriviti con nome utente e password come "falso"
__a=1&__be=-1&__dyn=5V8WXBzamaUCUx2u6Xolg9odpbGEW8yExLFwgoqwWhE98nwgUaqwHx24UJi28rxuF98ScDKuEjKewExaag4idxK4ohyVeE8UnyogKcx2785aayoe8hxG1awxwxgeEtwqUbQ3a1NDx6WK6pE9GBy8pxO12wRyUa8nyESbwgUgUKezUny9EbE9E-dgoV8O2V7yolwPzpp8GcxmUpzUryEqz85CGDwHx-5UO5bAyEa8aoCubK&__pc=PHASED:DEFAULT&__req=11&__rev=4123490&__user=0&action_dialog_shown=&asked_to_login=0&birthday_day=20&birthday_month=7&birthday_year=1993&captcha_persist_data=AZkj-5HqoXlsmEo3clgW9gmBHEKtRG3BQoRQ8EdYxrW2JTVg7sw6i_5wAqibWnE5Ubf2XivTgVpW70CJLfLwbtcAJkFylMxpep13OHyDh8Y7MPVI7LZTpeznA5e4yFJ8fUGPW4fUjAKngzl5rqJ91bZx7pKYErtj_GVhUDMLivUq0XlKibMoci2qPry7TRJskGjruNBWsAgTHolP5fHqFzssS8m3-OQoFJPjmX9vYye-3K5_0POt0oQ2J7q_iuE-Spdmv_0r4GdpOA-R-Fr0USs8V9OJd3jGCa1SZiFruN6pPh4no-CGqA5MJm-f3G1ID1yvAyFifk6No2QOv-yVcrG7PFX4eaE4UWEklZzmlcbBsENSFZt7M3f7KG-nLCUTZTk&captcha_response=&contactpoint_label=email_or_phone&firstname=Paul&ignore=reg_second_contactpoint__%7Ccaptcha&lastname=Smith&locale=en_GB&lsd=AVrgQt1V&ns=1&referrer=&[email protected]&[email protected]®_instance=9p9RW-B5RLUuCETwQ0f6VBig&[email protected]®_second_contactpoint__=&ri=9f2afcc5-92b5-6f74-f171-c2a48740f98d&sex=1&skstamp=eyJyb3VuZHMiOjUsInNlZWQiOiI2ZmNkN2MwN2U2OTNkZDc3NGYxMTgzMTc3ZGY0MzNhMCIsInNlZWQyIjoiYjRjYjI0NzJmMTA2ZmI4YzhhMmNmYWZhN2I4NWZkMjIiLCJoYXNoIjoiMmY0NmQ4NGJmYmJhMTcyMmI2MjA1Yjc0YTZhNGFhOTQiLCJoYXNoMiI6ImViOGI2MTQ3ZGFjYTRiNDNjMTM2MzMzYmU3M2JkZmFkIiwidGltZV90YWtlbiI6NDA5OSwic3VyZmFjZSI6InJlZ2lzdHJhdGlvbiJ9&terms=on
Quindi, ho inserito alcune informazioni sulla spazzatura:
Dalla precedente richiesta POST non viene menzionata la parola "falso"
Questa volta ho inserito username e password come "test" e ho fatto clic su login:
ab_test_data=AAAAAAAAf/fAfffAAAAAAAAAAAAAAAAAAAAAAAAA/qqVAAAAAAEAAA&email=test&lgndim=eyJ3IjoxOTIwLCJoIjoxMDgwLCJhdyI6MTkyMCwiYWgiOjEwNDAsImMiOjI0fQ==&lgnjs=1532076517&lgnrnd=014836_d6Rn&locale=en_GB&login_source=login_bluebar&lsd=AVrgQt1V&pass=test&prefill_contact_point=&prefill_source=&prefill_type=&skstamp=eyJyb3VuZHMiOjUsInNlZWQiOiI2ZmNkN2MwN2U2OTNkZDc3NGYxMTgzMTc3ZGY0MzNhMCIsInNlZWQyIjoiYjRjYjI0NzJmMTA2ZmI4YzhhMmNmYWZhN2I4NWZkMjIiLCJoYXNoIjoiMmY0NmQ4NGJmYmJhMTcyMmI2MjA1Yjc0YTZhNGFhOTQiLCJoYXNoMiI6ImViOGI2MTQ3ZGFjYTRiNDNjMTM2MzMzYmU3M2JkZmFkIiwidGltZV90YWtlbiI6NzQ5OSwic3VyZmFjZSI6ImxvZ2luIn0=&timezone=-60
Infine, ho impostato il completamento automatico e ho effettuato la registrazione, stesso comportamento. Nessuna menzione del nome utente o della password è stata inviata al server.
Supponiamo anche per un momento che il nome utente e la password siano stati inviati al server. Il rischio sarebbe lo stesso di fare comunque il login, quindi applicare gli attacchi standard come MITM e XSS.
L'ho provato su Chrome versione 67.0.3396.99 (Build ufficiale) (64-bit) e l'unica estensione che ho installato è Tamper Data per Chrome.
A meno che il designer di pagine non sia davvero schizofrenico, non ci dovrebbero essere maggiori rischi per la sicurezza. Un modulo HTML è composto da:
Se non fai clic su uno dei pulsanti di invio del modulo, i campi di input non devono essere membri della richiesta. Quindi, se fai clic su un link, nessun dato non verrà aggiunto all'URL del link e clicchi su un pulsante di invio di un modulo diverso, solo i dati di quell'altro modulo verranno inviati.
Le cose possono essere diverse per un pulsante Javascript. Il javascript invocato può accedere a qualsiasi dato sulla pagina, quindi potrebbe inviare qualsiasi dato a qualsiasi URL. Ma non riesco a immaginare perché qualcuno potrebbe averlo codificato! Detto diversamente, se scrivi le tue credenziali su una pagina, ti fidi del sito. Quella fiducia si estende alla pagina di login per non fare cose troppo stupide o pericolose (*). Quindi, anche se tecnicamente i rischi potrebbero essere aumentati, sono sempre gli stessi dal punto di vista della fiducia.
(*) un programmatore non troppo prudente potrebbe inviare le credenziali a una pagina sbagliata ma ancora nello stesso sito o all'interno della stessa zona di sicurezza. Quindi non posso immaginare una perdita di dati qui. E se il sito è abbastanza povero da memorizzare la password in un modulo non criptato su quell'altra pagina, non puoi fidarti di gestire correttamente la tua password in qualsiasi altro posto, anche quando fai clic sul pulsante corretto.
Leggi altre domande sui tag authentication passwords web-application user-names