Necesito modificar una API REST de acceso público: no segura, todos los GET de HTTP, acceso (teóricamente) limitado por las claves de API.
Necesito uno de los puntos finales para aceptar ahora un parámetro adicional, uno que se considera información confidencial.
(No es un problema de seguridad, sino un problema de privacidad. Como en: No quiero que un usuario pueda ver los precios de otra persona si obtiene su ID).
Restricciones:
- No puedo asegurar la API en sí misma, debe permanecer abierta (no autenticada).
- Las llamadas a esta API en realidad pasan por una API intermedia fuera de mi control. Pero esa API admite HTTPS y reenvía todos los parámetros y algunos encabezados.
No estoy familiarizado con la seguridad, por lo que agradecería todos los consejos. Mis primeros pensamientos fueron:
- pase el parámetro en el encabezado para evitar que los usuarios vean el parámetro (¿y hacerlo menos accesible mediante programación?)
- cifre el parámetro (aunque no sé exactamente cómo hacerlo mejor)
¿El cifrado de clave pública-privada sería adecuado aquí? Parece limitado por el hecho de que tendría que proporcionar nuestra clave pública a todos los posibles llamadores que usarían este parámetro (solo un par dentro de la empresa, por el momento)