2025-03-20 21:42:31 +01:00

72 lines
2.0 KiB
ApacheConf

# FavMasToKey - Configuration Apache
# Activer le moteur de réécriture
RewriteEngine On
# Protéger les fichiers sensibles
<FilesMatch "^(config\.php|functions\.php)$">
Order Allow,Deny
Deny from all
</FilesMatch>
# Bloquer l'accès au répertoire includes
<IfModule mod_rewrite.c>
RewriteRule ^includes/ - [F,L]
</IfModule>
# Bloquer l'accès aux fichiers cachés
<FilesMatch "^\.">
Order Allow,Deny
Deny from all
</FilesMatch>
# Forcer HTTPS (décommenter en production)
# RewriteCond %{HTTPS} !=on
# RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Headers de sécurité
<IfModule mod_headers.c>
# Empêcher le clickjacking
Header set X-Frame-Options "SAMEORIGIN"
# Prévention XSS
Header set X-XSS-Protection "1; mode=block"
# Empêcher le MIME sniffing
Header set X-Content-Type-Options "nosniff"
# Référer policy
Header set Referrer-Policy "strict-origin-when-cross-origin"
# Content Security Policy (CSP)
Header 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';"
</IfModule>
# Désactiver l'affichage du contenu des répertoires
Options -Indexes
# Limiter les méthodes HTTP
<LimitExcept GET POST HEAD>
Order Allow,Deny
Deny from all
</LimitExcept>
# PHP settings
<IfModule mod_php.c>
# Désactiver l'affichage des erreurs en production
# php_flag display_errors Off
# 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écuriser les cookies de session
php_value session.cookie_httponly 1
php_value session.use_only_cookies 1
# Utiliser des cookies sécurisés en production
# php_value session.cookie_secure 1
</IfModule>