Pregunta

¿Es una POST lo suficientemente segura como para enviar credenciales de inicio de sesión?

¿O es una conexión SSL un must ?

¿Fue útil?

Solución

SSL es imprescindible. POST no es más seguro que GET ya que & # 8217; s también se envía sin cifrar. SSL cubrirá toda la comunicación HTTP y cifrará el envío de datos HTTP entre el cliente y el servidor.

Otros consejos

<shameless plug> Tengo una publicación de blog que detalla cómo se ve una solicitud HTTP y cómo se compara una solicitud GET con una solicitud POST. Por razones de brevedad, OBTENGA:

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

y 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

(El CRLF es solo una nueva línea)

Como puede ver, las únicas diferencias desde el punto de vista de cómo se forma una solicitud * es que una solicitud POST utiliza la palabra POST y los datos del formulario se envían en el cuerpo de la solicitud frente al URI. Por lo tanto, el uso de HTTP POST es seguridad por oscuridad. Si desea proteger los datos, debe usar SSL.

* Tenga en cuenta que hay son otras diferencias .

Eso depende de sus circunstancias, ¿cuánto le costaría a alguien la interceptación de las credenciales?

Si es solo un inicio de sesión en un sitio de preguntas y respuestas de software, entonces SSL podría no ser necesario, si es un sitio de banca en línea o almacena datos de tarjetas de crédito, entonces lo es.
Esta es una empresa, no una decisión técnica.

HTTP POST no está encriptado, puede ser interceptado por un sniffer de red, por un proxy o filtrado en los registros del servidor con un nivel de registro personalizado. Sí, POST es mejor que GET porque los datos POST no están habitualmente registrados por un proxy o servidor, pero no son seguros . Para asegurar una contraseña u otros datos confidenciales, debe usar SSL o cifrar los datos antes de PUBLICAR. Otra opción sería utilizar la autenticación implícita con el navegador (consulte RFC 2617). Recuerde que el cifrado (propio) no es suficiente para evitar ataques de repetición, debe concatenar un nonce y otros datos (por ejemplo, reino) antes del cifrado (consulte RFC 2617 para ver cómo se hace en Digest Auth).

SSL es imprescindible :)

La publicación HTTP se transmite en texto plano. Por ejemplo, descargue y use Fiddler para ver el tráfico HTTP. Puede ver fácilmente toda la publicación allí (o mediante un monitor de tráfico de red como WireShark)

No es seguro. Un POST se puede oler tan fácilmente como un GET.

No ... POST no es lo suficientemente seguro en absoluto. SSL es IMPRESCINDIBLE.

POST solo oculta efectivamente los parámetros en la cadena de consulta. Esos parámetros aún pueden ser recogidos por cualquiera que esté mirando el tráfico entre el navegador y el punto final.

La forma más segura es no enviar credenciales en absoluto.

Si usa Autenticación implícita , entonces SSL es NOT un deber.

(Nota: no estoy dando a entender que la autenticación implícita sobre HTTP siempre es más segura que usar POST sobre HTTPS).

POST es texto sin formato.

Una conexión segura es imprescindible.

Es por eso que se llama una conexión segura.

No, use SSL.

Con POST los valores aún se envían como texto sin formato a menos que se use SSL.

La única diferencia entre HTTP GET y HTTP POST es la forma en que se codifican los datos. En ambos casos se envía como texto sin formato.

Para proporcionar cualquier tipo de seguridad para las credenciales de inicio de sesión, HTTPS es imprescindible.

Tampoco necesita un certificado costoso para proporcionar HTTPS. Hay muchos proveedores que emitirán certificados muy básicos por alrededor de $ 20USD. Los más caros incluyen la verificación de identidad, que es más preocupante para los sitios de comercio electrónico.

Una solicitud POST por sí sola no es segura porque todos los datos están & "; viajando &"; en texto plano.

Necesita SSL para que sea seguro.

Los datos POST se envían en texto sin formato si está utilizando una conexión HTTP sin cifrar. SI esto es lo suficientemente seguro depende de su uso (pista: no lo es).

Si tanto el servidor, la máquina cliente y TODAS LAS MÁQUINAS ENTRE ELLOS son parte de una red controlada y totalmente confiable, esto puede estar bien.

Fuera de estas circunstancias muy limitadas (y, a veces, incluso dentro de ellas), la autenticación de texto sin formato requiere problemas.

Por favor vea este excelente artículo:

Proteger contra solicitudes POST maliciosas

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top