security - servicios - solicitudes get y post
¿Qué tan seguro es un HTTP POST? (15)
Depende de dónde lo estés usando y qué tan seguro realmente lo necesites.
No hay forma de que alguien obtenga los datos de POST que envía desde su hogar a menos que esté usando un proxy (TOR) o alguien esté tocando sus hilos.
Sin embargo, si le preocupa que alguien inicie sesión utilizando una red inalámbrica no segura, entonces ssl es importante.
Si eres un banco, ni siquiera puedes correr ese riesgo. Si eres un techer con inicios de sesión para ver las asignaciones, entonces deberías estar bien
¿Es POST lo suficientemente seguro para enviar las credenciales de inicio de sesión?
¿O es una conexión SSL una obligación ?
Eso depende de tus circunstancias, ¿cuánto le costaría la interceptación de las credenciales a alguien?
Si solo se trata de un inicio de sesión en un sitio Q + A de software, es posible que SSL no sea necesario, si se trata de un sitio de banca en línea o si almacena datos de tarjetas de crédito, entonces sí lo es.
Esta es una decisión comercial, no tecnológica.
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 generalmente no son registrados por un proxy o servidor, pero no es seguro . Para asegurar una contraseña u otra información confidencial, debe usar SSL o cifrar los datos antes de PUBLICAR. Otra opción sería usar autenticación implícita con el navegador (ver RFC 2617). Recuerde que el cifrado (de cosecha propia) no es suficiente para evitar los ataques de repetición, debe concatenar un nonce y otros datos (por ejemplo, el reino) antes de cifrar (consulte RFC 2617 para ver cómo se hace en Digest Auth).
La única diferencia entre HTTP GET y HTTP POST es la manera 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.
No necesita un certificado caro para proporcionar HTTPS tampoco. 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 una preocupación para los sitios de comercio electrónico.
La forma más segura es no enviar credenciales en absoluto.
Si usa Autenticación implícita , entonces SSL no es obligatorio.
(NB: no estoy implicando que la Autenticación Digest sobre HTTP sea siempre más segura que usar POST sobre HTTPS).
Los datos POST se envían en texto sin formato si está utilizando una conexión HTTP no encriptada. SI esto es lo suficientemente seguro depende de su uso (pista: no lo es).
Si tanto el servidor como la máquina cliente y TODAS LAS MÁQUINAS ENTRE ELLOS forman parte de una red controlada y totalmente confiable, esto puede estar bien.
Fuera de estas circunstancias muy limitadas (y algunas veces incluso dentro de ellas), la autenticación de texto sin formato está pidiendo problemas.
No ... POST no es lo suficientemente seguro. 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 mire el tráfico entre el navegador y el punto final.
No es seguro. Un POST puede ser olido tan fácilmente como un GET.
No, usa SSL.
Con POST, los valores todavía se envían como texto sin formato a menos que se use SSL.
POST es texto claro.
Una conexión segura es una necesidad.
Es por eso que se llama una conexión segura.
Por favor vea este gran artículo:
Proteger contra solicitudes POST maliciosas
SSL es imprescindible :)
HTTP Post se transmite en texto plano. Por ejemplo, descarga y usa Fiddler para ver el tráfico HTTP. Puede ver fácilmente la publicación completa allí (o a través de un monitor de tráfico de red como WireShark)
SSL es una necesidad. POST no es más seguro que GET ya que también se envía sin cifrar. SSL cubrirá toda la comunicación HTTP y encriptará el envío de datos HTTP entre el cliente y el servidor.
Una solicitud POST por sí sola no es segura porque todos los datos están "viajando" en texto plano.
Necesita SSL, para hacerlo seguro.
<shameless plug>
Tengo una publicación de blog que detalla cómo se ve una solicitud HTTP y cómo una solicitud GET se compara con una solicitud POST. En aras de la 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 de formulario se envían en el cuerpo de la solicitud frente al URI. Por lo tanto, usar HTTP POST es seguridad por oscuridad. Si desea proteger los datos, debe usar SSL.
*
Tenga en cuenta que hay otras diferencias .