"""
Tests de sécurité — SaaS Turf Prédictions IA
Sprint 8 — QA, Beta Fermee, Go/No-Go
Ticket: HRT-34
Couverture :
- Test injection SQL sur tous les inputs
- Test authentification : JWT expiration, refresh, logout
- Test autorisation : plan free ne peut pas accéder routes premium
- (OWASP ZAP est exécuté séparément via script shell)
"""
import pytest
import requests
import time
import base64
import json
import os
BASE_URL = os.environ.get("APP_URL", "http://localhost:8792")
# === Payloads injection SQL ===
SQL_INJECTION_PAYLOADS = [
"' OR '1'='1",
"' OR 1=1--",
"'; DROP TABLE users;--",
"' UNION SELECT null,null,null--",
"1'; SELECT * FROM users--",
"admin'--",
"' OR 'x'='x",
"1 OR 1=1",
"%27 OR %271%27=%271",
]
# === Payloads XSS ===
XSS_PAYLOADS = [
"",
"
",
"javascript:alert(1)",
"