{"id":971,"date":"2025-07-30T17:51:37","date_gmt":"2025-07-30T15:51:37","guid":{"rendered":"https:\/\/serer.fr\/?p=971"},"modified":"2026-03-09T11:20:31","modified_gmt":"2026-03-09T10:20:31","slug":"conseil-pour-securiser-une-application-web","status":"publish","type":"post","link":"https:\/\/serer.fr\/?p=971","title":{"rendered":"Conseil pour s\u00e9curiser une application web"},"content":{"rendered":"\n<p>Pour s\u00e9curiser la configuration d\u2019un serveur d&rsquo;applications web (Apache\u2026), il est crucial de limiter les failles exploitables et de prot\u00e9ger les donn\u00e9es, car Apache est souvent la porte d\u2019entr\u00e9e principale d\u2019un syst\u00e8me web. Voici les \u00e9tapes essentielles (et pourquoi chacune importe) pour renforcer la s\u00e9curit\u00e9 de ton serveur Apache :<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1.&nbsp;<strong>Garde ton serveur \u00e0 jour<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Pourquoi ?<\/strong>&nbsp;Les mises \u00e0 jour corrigent rapidement les vuln\u00e9rabilit\u00e9s d\u00e9couvertes dans Apache ou dans ses d\u00e9pendances. Un serveur obsol\u00e8te est une cible facile pour les attaquants<a href=\"https:\/\/httpd.apache.org\/docs\/2.4\/fr\/misc\/security_tips.html\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><a href=\"https:\/\/www.cloudino.pro\/blog\/securiser-et-optimiser-un-serveur-apache-guide-pratique\/\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><a href=\"https:\/\/geekflare.com\/fr\/10-best-practices-to-secure-and-harden-your-apache-web-server\/\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a>.<\/li>\n\n\n\n<li><strong>Comment ?<\/strong>&nbsp;Utilise la commande adapt\u00e9e \u00e0 ton syst\u00e8me, par exemple<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update &amp;&amp; sudo apt upgrade apache2<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">2.&nbsp;<strong>Cache les informations sur le serveur<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Pourquoi ?<\/strong>&nbsp;Moins l\u2019attaquant en sait, plus il aura de mal \u00e0 cibler les failles sp\u00e9cifiques. Masquez la version et limite les informations divulgu\u00e9es dans les en-t\u00eates HTTP et pages d\u2019erreur<a href=\"https:\/\/www.linuxtricks.fr\/wiki\/apache-installation-configuration-securisation\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><a href=\"https:\/\/aymeric-cucherousset.fr\/securiser-apache2-sur-un-serveur\/\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><a href=\"https:\/\/dns-ok.fr\/blindez-votre-serveur-apache-le-guide-ultime-pour-une-securite-inebranlable\/\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><a href=\"https:\/\/xavierwebdesign.fr\/securiser-serveur-apache-headers-securite-http\/\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><a href=\"https:\/\/www.cgsecurity.org\/Articles\/apache.html\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a>.<\/li>\n\n\n\n<li><strong>Comment ?<\/strong>&nbsp;Dans la configuration (<code>\/etc\/apache2\/conf-enabled\/security.conf<\/code>&nbsp;ou&nbsp;<code>apache2.conf<\/code>), ajoute\/modifie<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>ServerTokens Prod\nServerSignature Off<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">3.&nbsp;<strong>D\u00e9sactive l\u2019indexation des r\u00e9pertoires<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Pourquoi ?<\/strong>&nbsp;Emp\u00eache un pirate de lister les fichiers via le navigateur, ce qui pourrait l\u2019aider \u00e0 pr\u00e9parer une attaque.<\/li>\n\n\n\n<li><strong>Comment ?<\/strong>&nbsp;Ajoute \u00e0 la configuration Apache<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;Directory \/var\/www&gt; Options -Indexes &lt;\/Directory&gt;<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">4.&nbsp;<strong>R\u00e9duit et contr\u00f4le les modules activ\u00e9s<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Pourquoi ?<\/strong>&nbsp;Chaque module suppl\u00e9mentaire peut \u00eatre une faille potentielle. Moins il y en a, mieux c\u2019est<a href=\"https:\/\/dns-ok.fr\/blindez-votre-serveur-apache-le-guide-ultime-pour-une-securite-inebranlable\/\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><a href=\"https:\/\/www.cloudino.pro\/blog\/securiser-et-optimiser-un-serveur-apache-guide-pratique\/\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><a href=\"https:\/\/fr.linkedin.com\/advice\/1\/how-can-you-harden-apache-server-security-4odcc?lang=fr\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a>.<\/li>\n\n\n\n<li><strong>Comment ?<\/strong>\u00a0D\u00e9sactive les modules inutiles, par exemple\u00a0:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo a2dismod status<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>5. Limiter les m\u00e9thodes HTTP autoris\u00e9es<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Pourquoi ?<\/strong>&nbsp;Un pirate ne doit pas pouvoir modifier ou lire les fichiers cot\u00e9 serveur.<\/li>\n\n\n\n<li><strong>Comment ?<\/strong> D\u00e9sactivez toutes les m\u00e9thodes HTTP inutiles qui pourraient \u00eatre exploit\u00e9es (ex\u202f: PUT, DELETE).<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;Directory \/var\/www\/votre_site\/html&gt;\n  &lt;LimitExcept GET POST HEAD&gt;\n    Deny from all\n  &lt;\/LimitExcept&gt;\n&lt;\/Directory&gt;<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">6.&nbsp;<strong>Renforce les permissions des fichiers<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Pourquoi ?<\/strong>&nbsp;Un pirate ne doit pas pouvoir modifier ou lire les fichiers critiques ou de configuration.<\/li>\n\n\n\n<li><strong>Comment ?<\/strong>&nbsp;V\u00e9rifie que seuls les utilisateurs n\u00e9cessaires ont acc\u00e8s.<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo chown -R www-data:www-data \/var\/www\nsudo chmod -R 750 \/var\/www<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">7.&nbsp;<strong>Active le chiffrement HTTPS<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Pourquoi ?<\/strong>&nbsp;Le chiffrement prot\u00e8ge les communications contre l\u2019\u00e9coute (sniffing) et l\u2019usurpation (man-in-the-middle).<\/li>\n\n\n\n<li><strong>Comment ?<\/strong>&nbsp;Installe un certificat SSL\/TLS (Let\u2019s Encrypt propose des certificats gratuits), puis configure les VirtualHosts pour forcer l\u2019acc\u00e8s HTTPS<a href=\"https:\/\/dns-ok.fr\/blindez-votre-serveur-apache-le-guide-ultime-pour-une-securite-inebranlable\/\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><a href=\"https:\/\/www.cloudino.pro\/blog\/securiser-et-optimiser-un-serveur-apache-guide-pratique\/\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><a href=\"https:\/\/docs.redhat.com\/fr\/documentation\/red_hat_enterprise_linux\/9\/html\/deploying_web_servers_and_reverse_proxies\/setting-apache-http-server_deploying-web-servers-and-reverse-proxies\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a>.<\/li>\n<\/ul>\n\n\n\n<p>\u00c0 titre d&rsquo;exemple, voici comment g\u00e9n\u00e9rer des certificats avec <strong>certbot<\/strong> et apache.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install certbot python3-certbot-apache -y\nsudo certbot --apache\n<\/code><\/pre>\n\n\n\n<p>Pour un certificat sans configuration automatique (autonome ou autre serveur)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo certbot certonly --standalone -d votredomaine.com -d www.votredomaine.com<\/code><\/pre>\n\n\n\n<p><strong>Note importante :<\/strong> le serveur doit avoir acc\u00e8s \u00e0 internet et les routes doivent \u00eatre ouverte vers le port 80 (v\u00e9rification challenge) du serveur dans le mode standalone. Il est fortement d\u00e9conseill\u00e9 d&rsquo;utiliser des wildcards dans les noms de domaine.<\/p>\n\n\n\n<p><strong>Renouvellement automatique<\/strong><\/p>\n\n\n\n<p>Let&rsquo;s Encrypt d\u00e9livre des certificats valides 90 jours. Pour automatiser le renouvellement\u202f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>sudo certbot renew\n<\/code><\/code><\/pre>\n\n\n\n<p>Ajoutez-le dans une t\u00e2che cron\/planificateur pour qu&rsquo;il s\u2019ex\u00e9cute r\u00e9guli\u00e8rement.<\/p>\n\n\n\n<p>Cot\u00e9 apache, il faut ajouter les certificats g\u00e9n\u00e9r\u00e9s par certbot ou fournit par votre autorit\u00e9 de certification. Le virtual host devra comporter \u00e0 minium les lignes suivantes :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;VirtualHost *:443&gt;\n    ServerName votredomaine.com\n    ServerAlias www.votredomaine.com\n\n    DocumentRoot \/var\/www\/html\n\n    SSLEngine on\n    SSLCertificateFile \/etc\/letsencrypt\/live\/votredomaine.com\/fullchain.pem\n    SSLCertificateKeyFile \/etc\/letsencrypt\/live\/votredomaine.com\/privkey.pem\n\n    # Autres directives utiles\n&lt;\/VirtualHost&gt;\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">8.\u00a0<strong>Mets en place un pare-feu applicatif (WAF)<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Pourquoi ?<\/strong>&nbsp;Un WAF, comme ModSecurity, bloque les attaques courantes (injections SQL, XSS\u2026) avant qu\u2019elles n\u2019atteignent ton site<a href=\"https:\/\/dns-ok.fr\/blindez-votre-serveur-apache-le-guide-ultime-pour-une-securite-inebranlable\/\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a>.<\/li>\n\n\n\n<li><strong>Comment ?<\/strong>&nbsp;Installe ModSecurity et active le jeu de r\u00e8gles OWASP CRS.<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install libapache2-mod-security2\nsudo a2enmod security2\nsudo systemctl restart apache2<\/code><\/pre>\n\n\n\n<p>Dans votre VirtualHost, incluez ensuite\u202f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;IfModule mod_security2.c&gt;\n  Include \/etc\/modsecurity\/*.conf\n  Include \/etc\/modsecurity\/rules\/*.conf\n&lt;\/IfModule&gt;<\/code><\/pre>\n\n\n\n<p>R\u00e8gles OWASP (CRS)\u202f: activez les \u201cCore Rule Set\u201d fournis sur leur d\u00e9p\u00f4t officiel par l\u2019OWASP pour une protection \u00e0 jour contre tous les types d\u2019injection.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>git clone https:\/\/github.com\/coreruleset\/coreruleset.git<\/code><\/pre>\n\n\n\n<p>Rendez-vous dans le dossier clon\u00e9 et copiez les fichiers n\u00e9cessaires dans le r\u00e9pertoire de configuration de ModSecurity, g\u00e9n\u00e9ralement \/etc\/modsecurity\/ :<\/p>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>cd coreruleset\/\nsudo mv crs-setup.conf.example \/etc\/modsecurity\/crs-setup.conf\nsudo mv rules\/ \/etc\/modsecurity\/\nsudo cp \/etc\/modsecurity\/modsecurity.conf-recommended \/etc\/modsecurity\/modsecurity.conf\nsudo nano \/etc\/modsecurity\/modsecurity.conf\n<\/code><\/pre>\n\n\n\n<p>Trouvez la ligne\u202f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SecRuleEngine DetectionOnly<\/code><\/pre>\n\n\n\n<p>et remplacez-la par\u202f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SecRuleEngine On<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">9.&nbsp;<strong>Contr\u00f4le l\u2019acc\u00e8s aux ressources sensibles<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Pourquoi ?<\/strong>&nbsp;Limite l\u2019exposition des outils d\u2019administration ou r\u00e9pertoires critiques.<\/li>\n\n\n\n<li><strong>Comment ?<\/strong>&nbsp;Utilise l\u2019authentification de base\/digest et restreins par IP l\u2019acc\u00e8s aux interfaces d\u2019administration. Par exemple, le r\u00e9pertoire\/API admin :<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;Directory \/admin&gt; AuthType Basic Require ip 1.2.3.4 &lt;\/Directory&gt;<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">10.&nbsp;<strong>Configure les principaux headers de s\u00e9curit\u00e9<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Pourquoi ?<\/strong>&nbsp;Ils prot\u00e8gent contre le clickjacking, le XSS, la fuite d\u2019informations, etc.<\/li>\n\n\n\n<li><strong>Comment ?<\/strong>\u00a0Dans ta configuration ou avec mod_headers modifie ces headers. Ils durcissent efficacement la s\u00e9curit\u00e9 c\u00f4t\u00e9 navigateur<a href=\"https:\/\/xavierwebdesign.fr\/securiser-serveur-apache-headers-securite-http\/\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a>.<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>Header always set X-Frame-Options \"SAMEORIGIN\"\nHeader always set X-Content-Type-Options \"nosniff\"\nHeader always set Strict-Transport-Security \"max-age=31536000; includeSubDomains\"\nHeader always set Content-Security-Policy \"default-src 'self'\"\nHeader always set Referrer-Policy \"no-referrer\"\nHeader unset X-Powered-By<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>11. Restreindre les acc\u00e8s et isoler chaque VirtualHost<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Pourquoi ?<\/strong> Restreindre la surface d&rsquo;attaque et limiter les possibilit\u00e9s \u00e0 strict minimum<\/li>\n\n\n\n<li><strong>Comment ?<\/strong>  \u00c9vitez l\u2019ex\u00e9cution de fichiers PHP\/CGI non n\u00e9cessaires\u202f; contr\u00f4lez pr\u00e9cis\u00e9ment les autorisations sur les dossiers du VirtualHost.<\/li>\n<\/ul>\n\n\n\n<p><strong>1. Restreindre les r\u00e9pertoires d&rsquo;ex\u00e9cution CGI\/PHP<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Utilisez la directive&nbsp;<code>ScriptAlias<\/code>&nbsp;pour limiter les r\u00e9pertoires autoris\u00e9s \u00e0 ex\u00e9cuter du CGI.<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code><code>ScriptAlias \/cgi-bin\/ \/var\/www\/mon-site\/cgi-bin\/ <\/code><code>&lt;Directory \"\/var\/www\/mon-site\/cgi-bin\"&gt; Options +ExecCGI AddHandler cgi-script .cgi .pl Require all granted # Restreindre le type de fichier (voir plus bas) <\/code><code>&lt;\/Directory&gt; <\/code><\/code><\/pre>\n\n\n\n<p>N\u2019autorisez que les extensions strictement n\u00e9cessaires. N\u2019installez jamais de scripts CGI dans des r\u00e9pertoires accessibles librement sans contr\u00f4le<\/p>\n\n\n\n<ol start=\"5\" class=\"wp-block-list\">\n<li><\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">11.&nbsp;<strong>Surveille et analyse les logs<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Pourquoi ?<\/strong>\u00a0Pour rep\u00e9rer rapidement les attaques ou les comportements suspects.<\/li>\n\n\n\n<li><strong>Comment ?<\/strong>&nbsp;Active et consulte r\u00e9guli\u00e8rement les logs d\u2019acc\u00e8s et d\u2019erreur.<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>LogFormat \"%h %l %u %t \\\"%r\\\" %&gt;s %b\" custom_combined\nCustomLog \/var\/log\/apache2\/site_access.log custom_combined<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>12. Valider et filtrer les entr\u00e9es c\u00f4t\u00e9 application<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Pourquoi ?<\/strong> Elles prot\u00e8gent les entr\u00e9es contre les injections XSS, SQL. Elles permettent de garantir un bon fonctionnement de l&rsquo;application Web avec des comportements attendus.<\/li>\n\n\n\n<li><strong>Comment ?<\/strong> Validez syst\u00e9matiquement toutes les entr\u00e9es dans votre application (back-end). Utilisez des requ\u00eates pr\u00e9par\u00e9es (prepared statements) pour les acc\u00e8s SQL, et filtrez\/encodez toutes les donn\u00e9es affich\u00e9es pour se pr\u00e9munir du XSS. Des expressions r\u00e9guli\u00e8res peuvent remplir cette t\u00e2che, mais elles ne peuvent pas couvrir tous les cas.<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># Num\u00e9ro de t\u00e9l\u00e9phone fran\u00e7ais (10 chiffres, avec ou sans espace) :\n^0&#91;1-9]&#91;0-9]{8}$\n\n# Code postal fran\u00e7ais : Exactement 5 chiffres.\n^\\d{5}$\n\n# Nom\/pr\u00e9nom (uniquement lettres, espaces et traits d\u2019union) :\n^&#91;A-Za-z\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u00ff- ]+$\n\n# Mot de passe (au moins 8 caract\u00e8res, avec majuscules, minuscules, chiffre et caract\u00e8re sp\u00e9cial) :\n^(?=.&#91;a-z])(?=.&#91;A-Z])(?=.\\d)(?=.&#91;\\W_]).{8,}$\n\n# Adresse e-mail : Permet de valider une adresse e-mail standard.\n^&#91;a-zA-Z0-9._%+-]+@&#91;a-zA-Z0-9.-]+.&#91;a-zA-Z]{2,}$\n\n# Num\u00e9riques : Entier positif (sans signe)\n^\\d+$\n\n# Entier n\u00e9gatif ou positif (optionnellement sign\u00e9)\n^-?\\d+$\n\n# Nombre d\u00e9cimal avec point ou virgule\n^-?\\d+&#91;.,]?\\d*$\n\n# Montant mon\u00e9taire en euros (ex. 1\u202f234,56 \u20ac ou 1234.56)\n^\\d{1,3}(?:&#91; \\.,]?\\d{3})*(?:&#91;.,]\\d{2})?$\n\n# \ud83d\udd20 Lettres et caract\u00e8res : Nom ou pr\u00e9nom simple (lettres, espace, tiret, accents)\n^&#91;A-Za-z\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u00ff\\- ]{2,50}$\n\n# Champ alphanum\u00e9rique (lettres + chiffres)\n^&#91;A-Za-z0-9]+$\n\n# Champ alphanum\u00e9rique avec espaces\n^&#91;A-Za-z0-9 ]+$\n\n# Champ alphanum\u00e9rique \u00e9tendu avec ponctuation simple\n^&#91;A-Za-z0-9\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u00ff .,'\u2019\"\\-()?!]+$\n\n# \ud83d\udce7 Internet \/ Web : Adresse e-mail (version stricte)\n^&#91;a-z0-9._%+-]+@&#91;a-z0-9.-]+\\.&#91;a-z]{2,}$\n\n# URL de site Web\n^(https?:\\\/\\\/)?(www\\.)?&#91;a-zA-Z0-9.-]+\\.&#91;a-zA-Z]{2,}(\\\/\\S*)?$\n\n# Adresse IPv4 (simple)\n^(\\d{1,3}\\.){3}\\d{1,3}$\n\n# \ud83d\udcc5 Dates et heures : Date au format fran\u00e7ais (jj\/mm\/aaaa)\n^(0&#91;1-9]|&#91;0-9]|3)\\\/(0&#91;1-9]|1&#91;0-2])\\\/(19|20)\\d{2}$\n\n# Date au format ISO (aaaa-mm-jj)\n^\\d{4}-\\d{2}-\\d{2}$\n\n# Heure au format HH:MM (24h)\n^(&#91;0-9]|2&#91;0-3]):&#91;0-5]&#91;0-9]$\n\n# \ud83d\udcde T\u00e9l\u00e9phone \/ Contact : Num\u00e9ro de t\u00e9l\u00e9phone fran\u00e7ais (national)\n^0&#91;1-9]\\d{8}$\n\n# Num\u00e9ro international (+33, espace ou tiret)\n^\\+33 ?&#91;1-9]( ?\\d{2}){4}$\n\n#\ud83d\udcac Autres : Adresse postale libre (avec lettres, chiffres, ponctuation)\n^&#91;A-Za-z0-9\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u00ff\\s'\u2019\\-,.\/#]{5,100}$\n\n# Nom d'utilisateur (lettres, chiffres, underscore, 3-20 caract\u00e8res)\n^&#91;a-zA-Z0-9_]{3,20}$\n\n# Mot de passe (8+ caract\u00e8res, avec maj, min, chiffre, symbole)\n^(?=.&#91;a-z])(?=.&#91;A-Z])(?=.\\d)(?=.&#91;\\W_]).{8,}$\n<\/code><\/pre>\n\n\n\n<p>Principes de base des expressions r\u00e9guli\u00e8res pour contr\u00f4le de saisie\u202f:<\/p>\n\n\n\n<p>^ indique le d\u00e9but de la cha\u00eene.<\/p>\n\n\n\n<p>$ indique la fin de la cha\u00eene.<\/p>\n\n\n\n<p>[0-9] pour un chiffre, [A-Za-z] pour une lettre.<\/p>\n\n\n\n<p>{n} pour exiger un nombre exact de caract\u00e8res.<\/p>\n\n\n\n<p>\\d \u00e9quivalent \u00e0 [0-9].<\/p>\n\n\n\n<p>+, *, {min, max} pour le nombre d\u2019occurrences.<\/p>\n\n\n\n<p>En HTML, utilisez l\u2019attribut pattern sur vos champs de formulaire pour appliquer ces regex, exemple\u202f:<br>Adaptez chaque expression selon vos besoins de validation. Pour des exemples plus complexes (dates, montants, etc.), r\u00e9f\u00e9rez-vous aux documentations d\u00e9velopp\u00e9es.<\/p>\n\n\n\n<p>Attention\u202f: Ce contr\u00f4le doit id\u00e9alement \u00eatre fait \u00e0 la fois c\u00f4t\u00e9 client (JavaScript\/HTML5) et c\u00f4t\u00e9 serveur (PHP\/Python, etc.) pour garantir la s\u00e9curit\u00e9 et l\u2019int\u00e9grit\u00e9&nbsp;des&nbsp;donn\u00e9es.<\/p>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-ad2f72ca wp-block-group-is-layout-flex\">\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/serer.fr\/wp-content\/uploads\/2025\/07\/WarningGIF.gif\" alt=\"\" class=\"wp-image-1008\" style=\"width:80px;height:auto\"\/><\/figure>\n\n\n\n<p>\ud83d\ude01 N&rsquo;oubliez pas de red\u00e9marrer les services concern\u00e9s<\/p>\n<\/div>\n\n\n\n<p><strong>En r\u00e9sum\u00e9 :<\/strong>&nbsp;La s\u00e9curit\u00e9 commence par des mises \u00e0 jour r\u00e9guli\u00e8res, la minimisation des informations expos\u00e9es, la limitation des modules actifs, la restriction des acc\u00e8s, le chiffrement des \u00e9changes, l\u2019utilisation d\u2019un WAF, l\u2019impl\u00e9mentation de headers de s\u00e9curit\u00e9, et la surveillance constante des logs et des entr\u00e9es. Le d\u00e9ploiement et la configuration soigneuse de ModSecurity avec les r\u00e8gles OWASP CRS prot\u00e8gent la grande majorit\u00e9 des attaques par injection c\u00f4t\u00e9 Apache. Toutes ces mesures visent \u00e0 r\u00e9duire la surface d\u2019attaque, \u00e0 prot\u00e9ger les donn\u00e9es et \u00e0 d\u00e9tecter rapidement toute tentative d\u2019intrusion<a href=\"https:\/\/httpd.apache.org\/docs\/2.4\/fr\/misc\/security_tips.html\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><a href=\"https:\/\/www.linuxtricks.fr\/wiki\/apache-installation-configuration-securisation\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><a href=\"https:\/\/aymeric-cucherousset.fr\/securiser-apache2-sur-un-serveur\/\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><a href=\"https:\/\/dns-ok.fr\/blindez-votre-serveur-apache-le-guide-ultime-pour-une-securite-inebranlable\/\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><a href=\"https:\/\/www.cloudino.pro\/blog\/securiser-et-optimiser-un-serveur-apache-guide-pratique\/\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><a href=\"https:\/\/xavierwebdesign.fr\/securiser-serveur-apache-headers-securite-http\/\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><a href=\"https:\/\/geekflare.com\/fr\/10-best-practices-to-secure-and-harden-your-apache-web-server\/\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><a href=\"https:\/\/fr.linkedin.com\/advice\/1\/how-can-you-harden-apache-server-security-4odcc?lang=fr\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a>.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pour s\u00e9curiser la configuration d\u2019un serveur d&rsquo;applications web (Apache\u2026), il est crucial de limiter les failles exploitables et de prot\u00e9ger les donn\u00e9es, car Apache est souvent la porte d\u2019entr\u00e9e principale d\u2019un syst\u00e8me web. Voici les \u00e9tapes essentielles (et pourquoi chacune importe) pour renforcer la s\u00e9curit\u00e9 de ton serveur Apache : 1.&nbsp;Garde ton serveur \u00e0 jour [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1174,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23],"tags":[27,37,39],"class_list":["post-971","post","type-post","status-publish","format-standard","hentry","category-securite","tag-apache","tag-proxy","tag-ssl"],"_links":{"self":[{"href":"https:\/\/serer.fr\/index.php?rest_route=\/wp\/v2\/posts\/971","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/serer.fr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/serer.fr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/serer.fr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/serer.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=971"}],"version-history":[{"count":2,"href":"https:\/\/serer.fr\/index.php?rest_route=\/wp\/v2\/posts\/971\/revisions"}],"predecessor-version":[{"id":1394,"href":"https:\/\/serer.fr\/index.php?rest_route=\/wp\/v2\/posts\/971\/revisions\/1394"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/serer.fr\/index.php?rest_route=\/wp\/v2\/media\/1174"}],"wp:attachment":[{"href":"https:\/\/serer.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=971"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/serer.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=971"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/serer.fr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=971"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}