Credenziali di autenticazione di base HTTP trasmesse in URL e crittografia


250

Ho una domanda sulle credenziali di autenticazione HTTPS e HTTP.

Supponiamo di proteggere un URL con autenticazione HTTP:

<Directory /var/www/webcallback>
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /var/www/passwd/passwords
Require user gooduser
</Directory>

Quindi accedo a tale URL da un sistema remoto tramite HTTPS, passando le credenziali nell'URL:

https://gooduser:secretpassword@www.example.com/webcallback?foo=bar

Il nome utente e la password saranno automaticamente crittografati con SSL? Lo stesso vale per GET e POST? Sto facendo fatica a trovare una fonte credibile con queste informazioni.



Domanda molto vecchia ma comunque: questo approccio è stato deprecato da ietf.org/rfc/rfc3986.txt : "L'uso del formato" user: password "nel campo userinfo è deprecato."
Madbreaks,

Risposte:


237

Il nome utente e la password saranno automaticamente crittografati con SSL? Lo stesso vale per GET e POST

Sì sì sì.

L'intera comunicazione (salva per la ricerca DNS se l'IP per il nome host non è già memorizzato nella cache) viene crittografata quando SSL è in uso.


25
+1. GET e POST, incluso l'URL, sono crittografati. Aggiungerò solo - strumenti come i dati firebug e Tamper sono in grado di mostrare i risultati non crittografati solo perché fanno parte del browser e quindi sono in grado di intercettare la richiesta prima che venga crittografata. Una volta inviato tramite cavo, tutto è crittografato.
Sripathi Krishnan,

21
Per essere chiari, tutto tranne il dominio è crittografato. Se inciampa chiunque in tutto questo e vorrebbero una risposta più dettagliata, vedere answers.google.com/answers/threadview/id/758002.html
rcourtna

7
Per completezza, " Internet Explorer non supporta i nomi utente e le password negli indirizzi dei siti Web (URL HTTP o HTTPS) " Sembra che solo le versioni di Internet Explorer da 3.0 a 6.0 supportino la seguente sintassi per gli URL HTTP o HTTPS: http (s): //username:password@server/resource.ext Nota: questa modifica al comportamento predefinito non influisce su altri protocolli. Ad esempio, è ancora possibile includere le informazioni utente in un URL FTP dopo aver installato l'aggiornamento per la protezione 832894.
Luca,

questa risposta non contiene alcuna fonte credibile né ulteriori spiegazioni.
Jens Piegsa,

26

Sì, sarà crittografato.

Lo capirai se controlli semplicemente cosa succede dietro le quinte.

  1. Il browser o l'applicazione prima analizza l'URL e tenta di ottenere l'IP dell'host utilizzando una query DNS. ovvero: verrà effettuata una richiesta DNS per trovare l'indirizzo IP del dominio (www.esempio.com). Si noti che nessun'altra informazione verrà inviata tramite questa richiesta.
  2. Il browser o l'applicazione avvierà una connessione SSL con l'indirizzo IP ricevuto dalla richiesta DNS. I certificati verranno scambiati e questo accade a livello di trasporto. A questo punto non verranno trasferite informazioni a livello di applicazione. Ricorda che l'autenticazione di base fa parte di HTTP e HTTP è un protocollo a livello di applicazione. Non un'attività a livello di trasporto.
  3. Dopo aver stabilito la connessione SSL, ora i dati necessari verranno passati al server. ovvero: il percorso o l'URL, i parametri e il nome utente e la password di autenticazione di base.

-5

Non necessariamente vero. Sarà crittografato sul filo, ma atterra ancora nel testo normale dei registri


17
Quale server Web registra nome utente e password dalle richieste? Sarebbe un inferno di un web server insicuro.
Andrew Barber,

1
Sì, questo non è vero. Probabilmente è possibile istruire Apache a registrare queste informazioni, ma di sicuro non lo fa per impostazione predefinita.
DougW

27
@Brandon probabilmente pensava che "in URL" intendesse nella stringa della query (ad es.? User = bob & pw = 123hackmeplz). Ciò potrebbe finire nei registri del server.
Mike Graf,

5
Correlati: "Quando si chiama quell'URL sul client con ad es. Curl, il nome utente e la password saranno chiaramente visibili nell'elenco dei processi e potrebbero apparire nel file della cronologia di bash." - stackoverflow.com/a/4981309
Hawkeye Parker

1
@ zb226 il richiedente in particolare ha menzionato l'inserimento delle credenziali nell'URL.
Lambart,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.