Reindirizzamento sicuro a un dominio diverso con informazioni riservate

1

Ho uno scenario in cui gli utenti che accedono a un sito vengono reindirizzati a un altro dominio, hanno effettuato l'accesso anche lì e quindi reindirizzati al mio sito principale (in modo che l'accesso a uno consenta loro di accedere a entrambi). Includeremo una specie di token con il login per autenticare la richiesta. Entrambi i siti hanno certificati SSL validi.

Le mie due preoccupazioni sono:

1) Poiché i reindirizzamenti devono utilizzare GET invece di POST, come posso inviare il token senza che sia esposto nell'URL?

2) L'URL che sto reindirizzando sta usando HTTPS, tuttavia so di porre questa domanda ( Come garantire che le mie richieste API vengano inviate utilizzando SSL ) che SSL può essere compromesso se non si verificano i certificati su entrambi i capi della richiesta. Come si può fare per un reindirizzamento?

Sto usando PHP e Laravel. Sono un principiante quando si parla di sicurezza web, quindi mi scuso per le domande di base. Se questo non è il giusto scambio di stack per questa domanda, per favore fatemelo sapere e lo rimuoverò. Grazie!

    
posta Christian 15.11.2016 - 19:52
fonte

1 risposta

1

Since redirects must use GET instead of POST, how can I send the token without it being exposed in the url?

I reindirizzamenti possono effettivamente utilizzare POST (reindirizzamento del codice 307) ma dal momento che il POST è considerato un'operazione che modifica lo stato contrariamente a GET, non dovrebbe essere ripetuto senza chiedere all'utente. La cosa migliore sarebbe se non importa quando il token diventa visibile, cioè può essere crittografato dal sito di origine e decrittografato dal lato di destinazione. Questo può essere fatto ad esempio con la crittografia a chiave pubblica se l'origine conosce la chiave pubblica del target.

however I know ... that SSL can be compromised if you don't verify the certificates on both ends of the request.

Questa affermazione non è vera e non è rivendicata nella domanda come riferimento. Per garantire una connessione SSL contro gli attacchi man in the middle è necessario solo che il server si autentichi con un certificato e il client lo convalidi correttamente. I certificati client sono necessari solo se al server piace autenticare il client ma non sono necessari per la protezione contro un uomo nel mezzo.

Nel tuo caso non c'è niente di speciale da controllare con reindirizzamenti e HTTPS: il client esegue semplicemente TLS su entrambi i siti e convalida i loro certificati.

    
risposta data 15.11.2016 - 20:32
fonte

Leggi altre domande sui tag