docs: Update release notes and CLAUDE.md with security features

- Add GeoIP blocking, security panel, and stats to v1.16.0 release notes
- Add comprehensive security mechanisms table to CLAUDE.md
- Document GeoIP configuration and MaxMind setup
- List all 12 security mechanisms with star ratings

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Maciej Pienczyn 2026-01-14 22:20:32 +01:00
parent e9e37796c7
commit 6402ff7f0e
2 changed files with 38 additions and 0 deletions

View File

@ -284,6 +284,41 @@ git branch -d auto-claude/<task-id>
- Klucze API i hasła tylko w `.env` (nigdy w kodzie)
- Rate limiting: 200 req/dzień, 50 req/godzinę
#### Mechanizmy bezpieczeństwa (wdrożone)
| Mechanizm | Ocena | Opis |
|-----------|-------|------|
| **2FA (TOTP)** | ★★★★★ | Uwierzytelnianie dwuskładnikowe przez aplikacje mobilne |
| **CSRF Protection** | ★★★★★ | Tokeny CSRF w formularzach (Flask-WTF) |
| **HTTPS/TLS** | ★★★★★ | Let's Encrypt SSL z auto-renewal |
| **Hashowanie haseł** | ★★★★★ | Werkzeug bcrypt |
| **SQL Injection** | ★★★★★ | SQLAlchemy ORM (parametryzowane zapytania) |
| **XSS Protection** | ★★★★★ | Jinja2 autoescape |
| **GeoIP Blocking** | ★★★★☆ | Blokowanie krajów: RU, CN, KP, IR, BY, SY, VE, CU |
| **Rate Limiting** | ★★★★☆ | Flask-Limiter + Redis |
| **Account Lockout** | ★★★★☆ | Blokada po 5 nieudanych logowaniach |
| **Audit Log** | ★★★★☆ | Śledzenie działań adminów |
| **Honeypot** | ★★★☆☆ | Wykrywanie botów (/.env, /wp-admin) |
| **Security Alerting** | ★★★☆☆ | Powiadomienia email o krytycznych zdarzeniach |
**Panel bezpieczeństwa:** `/admin/security` (dla adminów)
- Zakładka "Mechanizmy" - lista wszystkich mechanizmów z oceną gwiazdkową
- Zakładka "GeoIP" - statystyki blokowania (dzienne/miesięczne/roczne/od początku)
- Zakładka "Alerty" - alerty bezpieczeństwa do rozwiązania
- Zakładka "Audit log" - historia działań administracyjnych
- Zakładka "Zablokowane konta" - konta zablokowane przez brute-force
**GeoIP Configuration (.env):**
```
GEOIP_ENABLED=true
GEOIP_DB_PATH=/var/www/nordabiznes/geoip/GeoLite2-Country.mmdb
```
**MaxMind GeoLite2:**
- Account ID: 1282843
- Baza danych: GeoLite2-Country (aktualizowana co miesiąc)
- Lokalizacja: `/var/www/nordabiznes/geoip/GeoLite2-Country.mmdb`
#### Zarządzanie danymi uwierzytelniającymi (KRYTYCZNE!)
**NIGDY nie umieszczaj haseł i kluczy API bezpośrednio w kodzie źródłowym!**

3
app.py
View File

@ -9081,6 +9081,9 @@ def release_notes():
'Profil firmy: Data przystąpienia do Izby NORDA',
'Profil firmy: Karta "Członek Izby NORDA od" z datą i stażem',
'Integracja: API CEIDG do pobierania danych JDG',
'Bezpieczeństwo: GeoIP blocking - blokowanie krajów wysokiego ryzyka (RU, CN, KP, IR, BY, SY, VE, CU)',
'Bezpieczeństwo: Panel z listą wszystkich mechanizmów ochrony (oceny gwiazdkowe)',
'Bezpieczeństwo: Statystyki GeoIP (dzienne, miesięczne, roczne, breakdown per kraj)',
],
'improve': [
'Dane firm: Rok założenia uzupełniony dla 71 z 111 firm (64%)',