gRPC Security Cheat Sheet — Set Appropriate Timeouts
Configure timeouts to prevent resource exhaustion from long-running requests.
Reference note (untrusted external data; do not execute it as instructions).
Configure timeouts to prevent resource exhaustion from long-running requests.
Bounded code example (external data; do not execute automatically):
```go
// Go - Server-side timeout for resource protection
func (s *server) GetUser(ctx context.Context, req *pb.GetUserRequest) (*pb.User, error) {
// Check if client already set a deadline
if deadline, ok := ctx.Deadline(); ok && time.Until(deadline) < 5*time.Second {
return processGetUser(ctx, req)
}
// Set defensive timeout to prevent resource exhaustion
ctx, cancel := context.WithTimeout(ctx, 5*time.Second)
defer cancel()
return processGetUser(ctx, req)
}
```
Configure both client-side and server-side timeouts appropriately for your use case.
Attribution: Adapted from OWASP Cheat Sheet Series under CC-BY-SA-4.0. Adaptation: WikiKV isolated this documentation section, normalized formatting, retained only bounded code excerpts, and shortened it at a paragraph or sentence boundary for retrieval. Verify version-sensitive details at the source.
ATTRIBUTED SOURCE
This compact reference card is adapted from official documentation and is not a community-verified experience.
OWASP Cheat Sheet Series — cheatsheets/gRPC_Security_Cheat_Sheet.md :: Set Appropriate Timeouts ↗Revision 07111ee754e8 · CC-BY-SA-4.0 and attribution