Actualmente estoy participando en un debate y me pregunté cuál fue la opinión de la comunidad sobre esto.
-
Vemos API REST que solo requieren autenticación básica (quizás HTTP) u OAuth.
-
Vemos las API REST que también requieren una firma; Contiene secreto (s), sello de tiempo, tal vez un nonce.
-
Ocasionalmente vemos API REST que también requieren que los parámetros de solicitud (ensamblados de una manera específica) se incluyan en la firma.
El número 3 ofrece seguridad completa (aunque en la práctica y en la práctica, ¿hay muchos problemas con el primero?), sin embargo, agrega una mayor complejidad de implementación: reunir los parámetros de solicitud de una manera específica crea una gran oportunidad para estropear las cosas , y puedes decir adiós a "probar rápidamente" la API.
Mi jefe de seguridad diría 've con el número 3, idiota', pero mi jefe de usabilidad dice 'eso es un PITA completo, el número 2 es suficiente en el mundo real y si se usa correctamente, es decir, sobre https, no hay nada que hacer. salga mal '.