Closed
Description
Context
We have some mutation defined:
extend type Mutation {
updateUserDetail(input: UpdateUserDetailsInput!): UpdateUserDetailsPayload
}
The user sends the following query:
mutation {
updateUserDetil {
user {
id
}
}
}
The server will response with an error maintaining in the message: "message": "Cannot query field \"updateUserDetil\" on type \"Mutation\". Did you mean \"updateUserDetail\"?",
The problem
In case of a private API, we generally want to avoid leaking information about our API. Disabling the introspection is a good step, but the recommendations are leaking some information that can be used by attackers. This talk discuss this issue (from the perspective of a pentester).
Propositions
- Remove suggestions for any environment that is not development
- Add a setting to force override the previous change