Estoy obligado por contrato a evitar la enumeración de los parámetros de un método API pero no puedo lograrlo.
Cuando envío una solicitud en blanco al servidor de API en un navegador web, el servidor responde con los parámetros exactos que requiere ese método. Esto hace que el trabajo de un atacante sea mucho más sencillo porque saben exactamente qué datos enviar a ese método API.
Por ejemplo, si entro enlace en un navegador web, obtengo una respuesta, similar a la siguiente, que contiene los parámetros exactos utilizados por ese método:
{"initObj": {"Locale":
{"LocaleLanguage":"","LocaleCountry":"","LocaleDevice":"","LocaleUserState":"PossibleValue1 || PossibleValue2"},
”Another Parameter":""”,"AnotherParameter”:”PossibleValue1 || PossibleValue2"},
"username": "", "password": ""}
Esta información le dice al atacante exactamente qué datos enviar al método API, lo que hace que el ataque sea mucho más fácil.
Lo que debo hacer es evitar que el servidor responda con esta información cuando se envíe una solicitud en blanco.
Por supuesto, estos parámetros siempre se envían a través de POST, no GET como cuando envío la URL en el navegador web. Por lo tanto, una solución es prevenir las solicitudes GET.
¿Cómo puedo evitar estas respuestas desde el servidor sin depender de este trabajo?