Aquí hay un escenario simple.
Tengo un punto final /person/:id
que devuelve información de personas de la base de datos. Cuando no se conoce :id
, se busca un recurso desde la base de datos. Un usuario malintencionado puede usar esta información para crear intencionalmente solicitudes que no existirían en el caché y, por lo tanto, la API para consultar la base de datos.
Puedo escalar los servicios web hasta el infinito ( y más allá! ), sin embargo, no puedo escalar la base de datos (debido a las restricciones de licencia).
Por lo tanto, puedo cifrar los PK (por ejemplo, utilizando aes ) y requiere que las ID cifradas resultantes se utilicen para consultar la API. El beneficio de este enfoque es que la API puede determinar si la ID es una ID válida sin necesidad de consultar la base de datos.
Me gustaría saber si esto tiene algún inconveniente o si se trata de un patrón de diseño conocido y hay un nombre que puedo buscar en Google.