- Token dienkripsi menggunakan AES-256 via Fernet
- Key derived dari machine-specific ID menggunakan PBKDF2 (480k iterations)
- Token tidak pernah disimpan dalam plaintext
- Environment Variable (
HF_TOKENatauHUGGINGFACE_TOKEN) - Paling aman - Encrypted File Storage - Fallback jika env var tidak tersedia
- Max 5 percobaan gagal berturut-turut
- Lockout 5 menit setelah max attempts tercapai
- Counter reset setelah lockout period selesai
- Semua akses token di-log ke
.xtools_audit.log - Tidak menyimpan token plaintext di log
- Hanya menyimpan hash prefix untuk identifikasi
- Validasi format: harus dimulai dengan
hf_ - Minimum length: 20 karakter
- Verifikasi integrity dengan SHA-256 hash
File yang mengandung data sensitif:
.xtools_secure.json # Encrypted settings
.xtools_lockout.json # Lockout status
.xtools_audit.log # Audit trail
- Flask secret key untuk session encryption
- CSRF protection via SameSite cookies
# Set token via environment variable (recommended)
export HF_TOKEN=hf_your_token_here
# Atau buat .env file (jangan commit!)
echo "HF_TOKEN=hf_your_token_here" > .env- Rotasi token secara berkala (30-90 hari)
- Revoke token lama segera setelah rotasi
- Monitor audit log untuk akses mencurigakan
# Set restrictive permissions
chmod 600 .xtools_secure.json
chmod 600 .xtools_lockout.json
chmod 600 .xtools_audit.logGET /api/security/statusGET /api/security/audit-logPOST /api/security/clear-lockoutJika token terekspos:
- Segera revoke token di https://huggingface.co/settings/tokens
- Clear lockout:
POST /api/security/clear-lockout - Generate token baru
- Review audit log untuk akses mencurigakan
- Update token di environment variable