Sono venuto qui con un problema di lotta. Gestiamo un sito web di social media, dove le persone possono registrarsi tramite il login classico (potrebbe essere la sua e-mail o il suo nome utente) e la forma della password, ma anche utilizzando Facebook Connect.
Quando un utente sceglie la seconda opzione, chiediamo la sua autorizzazione per connettersi a FB Auth e FB ci fornisce alcuni dettagli, dato che oggi usiamo l'e-mail registrata di Facebook come login e il suo ID di Facebook come password.
Quando abbiamo visto che potevamo modificare il nostro indirizzo email principale su fb, sapevamo che dovevamo cambiare il nostro modo di collegarli. Quindi abbiamo pensato di inviare il suo ID FB per autenticare l'utente.
Per evitare problemi di sniffing abbiamo aggiunto un certificato SSL. Ma abbiamo ancora un problema: anche con la minificazione sulla nostra APP Angolare, un utente potrebbe sapere con una piccola ricerca che per autenticarsi al nostro servizio egli "solo" deve conoscere il suo ID e inviarlo a noi con il postino.
Quindi, se può ottenere l'ID di Facebook di un altro utente (che potrebbe persino essere stato divulgato / venduto su un altro sito Web), potrebbe utilizzare Postman per autenticarsi come un altro utente.
Come posso proteggere questo processo?
Abbiamo pensato di utilizzare la crittografia asimmetrica in cui il client avrebbe cifrato l'ID con la chiave pub e il server avrebbe decifrato con la chiave privata. Ma dopo tutto, non sembra risolvere il problema.