API klíče jsou nejjednodušší forma autentizace — a nejčastěji kompromitovaná. Klíče v GitHubu, ve frontendu, bez expirace.
Generování¶
import secrets, hashlib def generate_api_key(prefix=”sk”): raw = secrets.token_urlsafe(32) full = f”{prefix}_{raw}” hash = hashlib.sha256(full.encode()).hexdigest() return full, hash # full → uživateli JEDNOU, hash → do DB
Ukládání¶
❌ API_KEY = “sk_live_abc123” # V kódu!¶
✅ os.environ[‘STRIPE_API_KEY’]¶
✅ Secret manager (Vault, AWS SM, Azure KV)¶
Best practices¶
- Hashujte klíče v DB (SHA-256)
- Prefix pro rozlišení (sk_live_, sk_test_)
- Expirace a rotace
- Scope — minimální oprávnění per klíč
- Pre-commit hooks (gitleaks, truffleHog)
Klíčový takeaway¶
API klíče hashujte, rotujte, omezujte scope. Nikdy necommitujte do Gitu.
securityapiklíčemanagement