• Stefy Lanza (nextime / spora )'s avatar
    v0.99.51: security hardening — bcrypt passwords, rate limiting, auth fixes,... · 1b742f3e
    Stefy Lanza (nextime / spora ) authored
    v0.99.51: security hardening — bcrypt passwords, rate limiting, auth fixes, safe cache serialisation
    
    - Migrate password hashing from SHA-256 to bcrypt with backward-compatible auto-upgrade on login
    - Add login rate limiting (10 attempts / 5 min window, 10 min lockout) per IP+username
    - Force password change when default admin/admin credentials are detected (C3)
    - Fix /api/admin/* middleware to require valid admin session instead of unconditional bypass (C5)
    - Replace pickle serialisation in all cache backends (Redis, SQLite, MySQL, File) with JSON-first encoding; legacy pickle data still readable (H9)
    - Fix PayPal webhook: implement 6 previously empty handler stubs with real wallet credit/debit logic (H1)
    - Fix Stripe: remove no-op _handle_payment_succeeded stub, fix real implementation to use WalletManager (C7)
    - Fix crypto address derivation race condition via BEGIN EXCLUSIVE / SELECT FOR UPDATE (H6)
    - Fix PayPal webhook verification: return False (not True) when webhook_id not configured (C6)
    - Fix pre-existing password reset flow using non-existent DB methods
    - Fix CORS: allow_credentials=False to be compatible with wildcard origins
    - Fix session cookie flags: same_site=lax, https_only via AISBF_HTTPS env var
    - Fix background task GC: hold strong references to prevent premature task collection
    - Remove dead Jinja2 environment and commented-out analytics init code
    - Apply XSS escaping to user-controlled innerHTML in analytics and autoselects dashboard templates
    - Update docs: security warnings in README and DEBUG_GUIDE, missing endpoints in ENDPOINTS.md
    Co-Authored-By: 's avatarClaude Sonnet 4.6 <noreply@anthropic.com>
    1b742f3e
ENDPOINTS.md 13.9 KB