Domanda

Un POST è abbastanza sicuro per inviare le credenziali di accesso?

O è una connessione SSL un necessario ?

È stato utile?

Soluzione

SSL è un must. POST non è più sicuro di GET in quanto invia anche non crittografato. SSL coprirà l'intera comunicazione HTTP e crittograferà i dati HTTP inviati tra client e server.

Altri suggerimenti

<shameless plug> Ho un post sul blog che specifica l'aspetto di una richiesta HTTP e come una richiesta GET si confronta con una richiesta POST. Per brevità, OTTIENI:

GET /?page=123 HTTP/1.1 CRLF
Host: jasonmbaker.wordpress.com CRLF
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-us) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/3.2.1 Safari/525.27.1 CRLF
Connection: close CRLF

e POST:

POST / HTTP/1.1 CRLF
Host: jasonmbaker.wordpress.com CRLF
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-us) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/3.2.1 Safari/525.27.1 CRLF
Connection: close CRLF
CRLF
page=123

(Il CRLF è solo una nuova riga)

Come puoi vedere, le uniche differenze dal punto di vista di come viene formata una richiesta * è che una richiesta POST utilizza la parola POST e che i dati del modulo vengono inviati nel corpo della richiesta rispetto all'URI. Pertanto, l'utilizzo di HTTP POST è sicurezza per oscurità. Se si desidera proteggere i dati, è necessario utilizzare SSL.

* Da notare che sono altre differenze .

Dipende dalle circostanze, quanto costerebbe l'intercettazione delle credenziali a qualcuno?

Se si tratta solo di un accesso a un sito Q + A del software, SSL potrebbe non essere necessario, se si tratta di un sito di banking online o se si memorizzano i dati delle carte di credito, lo è.
Questa è un'azienda non una decisione tecnica.

HTTP POST non è crittografato, può essere intercettato da uno sniffer di rete, da un proxy o trapelato nei registri del server con un livello di registrazione personalizzato. Sì, POST è meglio di GET perché i dati POST non sono usualmente registrati da un proxy o da un server, ma non sono sicuri . Per proteggere una password o altri dati riservati è necessario utilizzare SSL o crittografare i dati prima di POST. Un'altra opzione sarebbe quella di utilizzare l'autenticazione Digest con il browser (vedi RFC 2617). Ricorda che la crittografia (cresciuta in casa) non è sufficiente per prevenire gli attacchi di replay, devi concatenare un nonce e altri dati (es. Realm) prima di crittografare (vedi RFC 2617 per come viene fatto in Digest Auth).

SSL è un must :)

HTTP Post viene trasmesso in testo semplice. Ad esempio, scarica e usa Fiddler per guardare il traffico HTTP. Puoi facilmente vedere l'intero post lì (o tramite un monitor del traffico di rete come WireShark)

Non è sicuro. Un POST può essere sniffato con la stessa facilità di un GET.

No ... POST non è affatto abbastanza sicuro. SSL è un must.

POST nasconde efficacemente solo i parametri nella stringa di query. Questi parametri possono ancora essere rilevati da chiunque guardi il traffico tra il browser e il punto finale.

Il modo più sicuro è di non inviare affatto le credenziali.

Se utilizzi Autenticazione digest , SSL è NON un must.

(NB: non sto insinuando che l'autenticazione Digest su HTTP sia sempre più sicura rispetto all'utilizzo di POST su HTTPS).

POST è in chiaro.

Una connessione sicura è d'obbligo.

Ecco perché si chiama connessione protetta.

No, usa SSL.

Con POST i valori vengono comunque inviati come testo normale a meno che non venga utilizzato SSL.

L'unica differenza tra HTTP GET e HTTP POST è il modo in cui i dati sono codificati. In entrambi i casi viene inviato come testo normale.

Al fine di fornire qualsiasi tipo di sicurezza per le credenziali di accesso, HTTPS è un must.

Non è necessario nemmeno un certificato costoso per fornire HTTPS. Ci sono molti fornitori che emetteranno certificati di base per circa $ 20 USD. Quelli più costosi includono la verifica dell'identità che è più una preoccupazione per i siti di e-commerce.

Una richiesta POST da sola non è sicura perché tutti i dati sono " viaggiando " in testo semplice.

È necessario SSL, per renderlo sicuro.

I dati POST vengono inviati in testo normale se si utilizza una connessione HTTP non crittografata. Se questo è abbastanza sicuro dipende dal tuo utilizzo (suggerimento: non lo è).

Se sia il server, il computer client e TUTTE LE MACCHINE TRA LORO fanno parte di una rete controllata e completamente affidabile, questo potrebbe essere ok.

Al di fuori di queste circostanze molto limitate (e talvolta anche al loro interno) l'autenticazione in testo semplice richiede problemi.

Leggi questo fantastico articolo:

Protezione contro richieste POST dannose

https://perishablepress.com/protect-post-requests/

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top