¿Es seguro transmitir tokens de acceso a través de encabezados HTTP?

11

Es el primer servicio web RESTful y me preocupan los problemas de seguridad. ¿Es seguro transmitir mi token de acceso a través de encabezados HTTP? Por ejemplo:

POST /v1/i/resource HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Api-key: 5cac3297f0d9f46e1gh3k83881ba0980215cd71e
Access_token: 080ab6bd49b138594ac9647dc929122adfb983c8

parameter1=foo&parameter2=bar

La conexión hecha de nuevo SSL. Además, ¿Qué se debe definir como el scopeatributo para cadaaccess token

ahmedsaber111
fuente

Respuestas:

12

Si transmitiera el encabezado del token de acceso a través de HTTP, sería vulnerable al ataque del hombre en el medio.

Cuando transmite el encabezado del token de acceso a través de HTTPS, nadie más que el cliente podrá ver este token ya que la solicitud se canalizará a través de una conexión segura.

CodeART
fuente
44
Un cliente descuidado puede ser vulnerable a ataques MITM incluso con SSL.
ott--
¿Puedes dar un ejemplo por favor?
CodeART el
No puede garantizar la seguridad del lado del cliente si no lo controla, pero eso es cierto para casi cualquier cosa.
Matt
2
@CodeWorks La mayoría de los navegadores ofrecerán al usuario la oportunidad de conectarse a un recurso HTTPS incluso si el certificado SSL es incorrecto para el recurso. Esta es, posiblemente, una de las cosas más tontas que los autores de navegadores han hecho, y esencialmente ofrece aceptar ataques MITM.
Ross Patterson
1
@ Entonces, ese certificado MITM específico debe agregarse a la lista de certificados raíz de los clientes. De lo contrario, ha reducido la advertencia HTTPS a un "lobo llorón" literal de que tanto A) entrena a sus usuarios para ignorarlo para siempre, B) es difícil (imposible debido a A) distinguirlo de un ataque MITM real y malicioso.
Nick T
8

No hay ningún problema grave al transferir el token de acceso a través de encabezados http porque los datos transferidos se cifran cuando se utiliza SSL, lo que significa que solo un cliente particular que realizó esa solicitud y el servidor que respondieron a la solicitud pueden entenderlo, mientras tanto no hay posibilidades de Comprender los datos por parte de un tercero.

Otra cosa es que access tokense basan en el tiempo para que tengan una vida útil por un período específico, por lo que no tienen posibilidades de uso en el futuro.

Ashwin
fuente
-1

Una cosa a considerar también es el almacenamiento en caché.

Su backend podría ver varias llamadas a la misma URL, con los mismos parámetros GET / POST pero un token de acceso de encabezado diferente y considerar que el contenido se puede almacenar en caché y cortar en cualquier cuerpo.

Thomas Decaux
fuente