# ===================================================== # Sillycone Village # Configuration Apache sécurisée pour site statique Hugo # ===================================================== # ----------------------------------------------------- # 1. Forcer HTTPS # ----------------------------------------------------- RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] # ----------------------------------------------------- # 2. Protection contre accès fichiers sensibles # ----------------------------------------------------- Require all denied # Bloquer l'accès au fichier .htaccess lui-même Require all denied # ----------------------------------------------------- # 3. Headers de sécurité HTTP # ----------------------------------------------------- # Empêche le navigateur de deviner les types MIME Header always set X-Content-Type-Options "nosniff" # Protection contre certaines attaques XSS anciennes Header always set X-XSS-Protection "1; mode=block" # Contrôle des informations envoyées aux sites externes Header always set Referrer-Policy "strict-origin-when-cross-origin" # Désactive les fonctionnalités navigateur inutiles Header always set Permissions-Policy "geolocation=(), microphone=(), camera=(), payment=(), usb=()" # Protection contre l'intégration dans une iframe externe Header always set X-Frame-Options "SAMEORIGIN" # Politique de sécurité du contenu # - pas de JS # - pas de CDN # - pas de police externe # - CSS local uniquement Header always set Content-Security-Policy "default-src 'self'; style-src 'self'; img-src 'self' data:; font-src 'self'; object-src 'none'; base-uri 'self'; frame-ancestors 'self'; form-action 'self'" # ----------------------------------------------------- # 4. Compression # ----------------------------------------------------- AddOutputFilterByType DEFLATE \ text/html \ text/plain \ text/css \ text/javascript \ application/javascript \ application/json \ application/xml \ image/svg+xml # ----------------------------------------------------- # 5. Cache navigateur # ----------------------------------------------------- ExpiresActive On # HTML : court pour faciliter les mises à jour ExpiresByType text/html "access plus 1 hour" # CSS ExpiresByType text/css "access plus 1 month" # SVG ExpiresByType image/svg+xml "access plus 1 month" # Fichiers statiques ExpiresByType application/javascript "access plus 1 month" # ----------------------------------------------------- # 6. Désactiver le listing des répertoires # ----------------------------------------------------- Options -Indexes # ----------------------------------------------------- # 7. Bloquer certains robots agressifs # ----------------------------------------------------- SetEnvIfNoCase User-Agent "MJ12bot" bad_bot SetEnvIfNoCase User-Agent "AhrefsBot" bad_bot Require all granted Require not env bad_bot