# VERSION 1.0.20260409
# 1. EN-TÊTES DE SÉCURITÉ (Sécurité Navigateur)
<IfModule mod_headers.c>
	Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
	Header set X-Frame-Options "SAMEORIGIN"
	Header set X-Content-Type-Options "nosniff"
	Header set Referrer-Policy "strict-origin-when-cross-origin"
	Header set Permissions-Policy "geolocation=(), microphone=(), camera=()"
</IfModule>

# 2. BLOCAGE DES FICHIERS SENSIBLES (Syntaxe Apache 2.4)
<FilesMatch "^(\.htaccess|wp-config\.php|readme\.html|license\.txt)">
	Require all denied
</FilesMatch>

# 3. BLOCAGE RADICAL DE XML-RPC (Source de l'attaque brute force)
<Files xmlrpc.php>
	<IfModule mod_authz_core.c>
		Require all denied
	</IfModule>
	<IfModule !mod_authz_core.c>
		Order deny,allow
		Deny from all
	</IfModule>
</Files>

# 4. GÉO-BLOCAGE ET LISTE NOIRE D'IPS (Version Corrigée)
<RequireAll>
# 1. On autorise l'accès (Soit tout le monde, soit vos IPs spécifiques)
	<RequireAny>
		Require all granted
		Require ip 185.188.169.2
	</RequireAny>
	
# 2. On retire explicitement les indésirables (Les 'Require not' priment)
	Require not ip 23.111.15.49
	Require not ip 185.165.46.201
	Require not ip 185.165.46.203
	Require not ip 185.173.205.57
	Require not ip 34.223.114.95
# Plages Géo-IP suspectes
	Require not ip 14.0.0.0/8 27.0.0.0/8 36.0.0.0/8 42.0.0.0/8 106.0.0.0/8 103.0.0.0/8 114.0.0.0/8
</RequireAll>

# 5. PROTECTION CONTRE L'INJECTION DE SCRIPTS (Filtre basique)
<IfModule mod_rewrite.c>
	RewriteEngine On
	RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]
	RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
	RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
	RewriteRule .* - [F]
</IfModule>

# BEGIN WordPress
# Les directives (lignes) entre « BEGIN WordPress » et « END WordPress » sont générées
# dynamiquement, et doivent être modifiées uniquement via les filtres WordPress.
# Toute modification des directives situées entre ces marqueurs sera surchargée.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress
