diff --git a/README.md b/README.md
index 45c48f9..8a4ffd2 100644
--- a/README.md
+++ b/README.md
@@ -34,6 +34,10 @@ Modifier `.env.exemple` en `.env`
### publish.sh
`./script/publish.sh` : Publie le site dans le _PUBLISH_DIR_ de _.env_
+Ne pas oublier de vérifier que les
+- dossiers sont en 755 (`find /var/www -type d -exec chmod 755 {} \;`)
+- fichiers sont en 644 (`find /var/www -type f -exec chmod 644 {} \;`)
+
## Spécificités
### Page 404 et Yunohost
La page 404.html, si l'option _Activer l'utilisation du fichier d'erreur personnalisé_ est activée, doit être déplacée sur www/error/404.html
diff --git a/TODO.md b/TODO.md
index d4e5497..ceeeb6a 100644
--- a/TODO.md
+++ b/TODO.md
@@ -2,14 +2,13 @@
## À faire
-### Sécurité
-
-- [ ] Permissions (fichiers : 644 - dossiers : 755)
-- [ ] .htaccess
-
---
## Fait
+### Sécurité
+- [x] Permissions (fichiers : 644 - dossiers : 755)
+- [x] .htaccess
+
### Légal
- [x] Rédiger les mentions légales
- [x] Rédiger la politique de confidentialité
diff --git a/site/static/.htaccess b/site/static/.htaccess
new file mode 100644
index 0000000..d20fb58
--- /dev/null
+++ b/site/static/.htaccess
@@ -0,0 +1,137 @@
+# =====================================================
+# 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
+
+
+
\ No newline at end of file