# FavMasToKey - Configuration Apache # Activer le moteur de réécriture RewriteEngine On # Forcer HTTPS (à activer en production en supprimant le commentaire) # RewriteCond %{HTTPS} !=on # RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] # Protéger le répertoire includes <IfModule mod_rewrite.c> RewriteRule ^includes/ - [F,L] </IfModule> # Bloquer l'accès aux fichiers sensibles <FilesMatch "^(config\.php|functions\.php|app_data\.php)$"> Order Allow,Deny Deny from all </FilesMatch> # Protéger .htaccess et tout fichier commençant par un point <FilesMatch "^\."> Order Allow,Deny Deny from all </FilesMatch> # Désactiver l'accès aux anciens fichiers d'authentification (qui n'existent plus) <FilesMatch "^(oauth\.php|callback\.php)$"> Order Allow,Deny Deny from all </FilesMatch> # Désactiver l'affichage du contenu des répertoires Options -Indexes # Limiter les méthodes HTTP autorisées <LimitExcept GET POST HEAD> Order Allow,Deny Deny from all </LimitExcept> # Headers de sécurité <IfModule mod_headers.c> # Protection contre le clickjacking Header always set X-Frame-Options "SAMEORIGIN" # Protection XSS Header always set X-XSS-Protection "1; mode=block" # Prévention MIME sniffing Header always set X-Content-Type-Options "nosniff" # Referrer Policy Header always set Referrer-Policy "strict-origin-when-cross-origin" # Content Security Policy - Ajusté pour les ressources externes utilisées Header always set Content-Security-Policy "default-src 'self'; script-src 'self' https://cdn.jsdelivr.net; style-src 'self' https://cdn.jsdelivr.net; img-src 'self' data:; font-src 'self' https://cdn.jsdelivr.net; connect-src 'self'" # Désactiver la détection automatique du cache Header unset ETag FileETag None # Mise en cache des ressources statiques <FilesMatch "\.(css|js)$"> Header set Cache-Control "max-age=604800, public" </FilesMatch> # En production, activer HSTS (HTTP Strict Transport Security) # Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" env=HTTPS </IfModule> # Configuration PHP <IfModule mod_php.c> # Masquer la version de PHP et autres informations php_flag expose_php Off # Désactiver l'affichage des erreurs en production (à décommenter en production) # php_flag display_errors Off # php_flag display_startup_errors Off # php_value error_reporting 0 # Limiter le temps d'exécution des scripts php_value max_execution_time 120 # Limiter la taille des téléchargements php_value upload_max_filesize 10M php_value post_max_size 10M # Sécurité des sessions php_value session.cookie_httponly 1 php_value session.use_only_cookies 1 php_value session.cookie_samesite "Lax" # Utiliser des cookies sécurisés en production (à décommenter en production) # php_value session.cookie_secure 1 </IfModule> # Compresser les fichiers texte pour réduire la taille de transfert <IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript application/json </IfModule> # Protection contre les scans de vulnérabilités communes RedirectMatch 404 (?i)\.php\.suspected RedirectMatch 404 (?i)wp-login\.php RedirectMatch 404 (?i)wp-admin RedirectMatch 404 (?i)xmlrpc\.php