35 lines
558 B
Markdown
35 lines
558 B
Markdown
---
|
|
paths:
|
|
- "**/*.go"
|
|
- "**/go.mod"
|
|
- "**/go.sum"
|
|
---
|
|
# Go Security
|
|
|
|
> This file extends [common/security.md](../common/security.md) with Go specific content.
|
|
|
|
## Secret Management
|
|
|
|
```go
|
|
apiKey := os.Getenv("OPENAI_API_KEY")
|
|
if apiKey == "" {
|
|
log.Fatal("OPENAI_API_KEY not configured")
|
|
}
|
|
```
|
|
|
|
## Security Scanning
|
|
|
|
- Use **gosec** for static security analysis:
|
|
```bash
|
|
gosec ./...
|
|
```
|
|
|
|
## Context & Timeouts
|
|
|
|
Always use `context.Context` for timeout control:
|
|
|
|
```go
|
|
ctx, cancel := context.WithTimeout(ctx, 5*time.Second)
|
|
defer cancel()
|
|
```
|