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.