<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Matteo Cisilino</title>
	<atom:link href="https://www.cisilino.com/fr/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.cisilino.com/fr/</link>
	<description>Guide su WordPress, server e sicurezza</description>
	<lastBuildDate>Sat, 31 Oct 2026 17:57:31 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.4</generator>
	<item>
		<title>Phishing hôtelier : l&#8217;e-mail piège que j&#8217;ai vue arriver chez un gestionnaire d&#8217;établissement</title>
		<link>https://www.cisilino.com/fr/2026/10/31/phishing-hotelier-email-piege-gestionnaire-etablissement/</link>
					<comments>https://www.cisilino.com/fr/2026/10/31/phishing-hotelier-email-piege-gestionnaire-etablissement/#respond</comments>
		
		<dc:creator><![CDATA[matteocisilino]]></dc:creator>
		<pubDate>Sat, 31 Oct 2026 17:57:21 +0000</pubDate>
				<category><![CDATA[Entre la chaise et le clavier]]></category>
		<category><![CDATA[arnaques en ligne]]></category>
		<category><![CDATA[Booking.com]]></category>
		<category><![CDATA[ingénierie sociale]]></category>
		<category><![CDATA[phishing]]></category>
		<category><![CDATA[sécurité hôtelière]]></category>
		<guid isPermaLink="false">https://www.cisilino.com/?p=1452</guid>

					<description><![CDATA[<p>Un vrai cas de phishing hôtelier reçu par un gestionnaire d'établissement : comment fonctionne l'arnaque et comment s'en protéger.</p>
<p>The post <a href="https://www.cisilino.com/fr/2026/10/31/phishing-hotelier-email-piege-gestionnaire-etablissement/">Phishing hôtelier : l’e-mail piège que j’ai vue arriver chez un gestionnaire d’établissement</a> first appeared on <a href="https://www.cisilino.com/fr/">Matteo Cisilino</a>.</p>]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">Ces derniers temps, on parle beaucoup des arnaques liées aux réservations en ligne. La Commission européenne a ouvert une enquête sur Booking.com. Elle veut savoir si la plateforme fait assez contre les fausses annonces et la publicité peu transparente. Elle veut aussi savoir si elle fait assez contre le phishing hôtelier qui exploite les données de ceux qui réservent une chambre. Je gère l&rsquo;hébergement de plusieurs établissements touristiques. Un cas de phishing hôtelier, je l&rsquo;ai vu arriver dans la boîte mail d&rsquo;un client il y a quelques semaines. Ce n&rsquo;est pas une statistique. C&rsquo;est un e-mail bien réel, avec un lien bien réel, envoyé à une personne bien réelle.</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://www.cisilino.com/wp-content/uploads/2026/10/phishing-alberghiero-email-truffa-censurata-v2.webp" alt="E-mail de phishing hôtelier avec lien masqué flouté pour la sécurité"/></figure>



<p class="wp-block-paragraph">L&rsquo;expéditeur utilise un nom générique. Rien de suspect à première vue. L&rsquo;objet est anodin : « Disponibilité chambre du 10 au 12 novembre ». Le texte est en français assez naturel. Il a quelques petites imperfections, le genre qu&rsquo;un locuteur natif remarquerait, mais rien qui déclenche une alarme immédiate. La personne qui écrit dit vouloir réserver. Elle demande une confirmation de disponibilité. Puis elle ajoute un détail qui semble anodin : elle déclare avoir joint une copie de son passeport, « pour faciliter la réservation ». Il y a aussi un petit détail temporel : elle sera en voyage à partir du 9, donc elle préférerait avoir déjà tout confirmé à l&rsquo;avance.</p>



<p class="wp-block-paragraph">Cette phrase, « je serai en voyage », est un levier psychologique précis. Ce n&rsquo;est pas une urgence agressive. On ne demande pas d&rsquo;argent tout de suite. Elle crée juste une raison plausible de se dépêcher, de répondre avant d&rsquo;y réfléchir trop longtemps. J&rsquo;ai vu la capture d&rsquo;écran de cet e-mail, avec le lien flouté pour des raisons de sécurité. Je la trouve presque un exemple de manuel de la façon dont on construit une tentative de phishing hôtelier efficace : aimable, crédible, avec une pointe d&rsquo;urgence calculée.</p>



<h2 class="wp-block-heading">Comment fonctionne le phishing hôtelier en deux étapes</h2>



<p class="wp-block-paragraph">Le mécanisme comporte deux phases distinctes. Elles valent la peine d&rsquo;être comprises toutes les deux, car de l&rsquo;extérieur elles semblent banales, et pourtant elles fonctionnent. La première phase, c&rsquo;est l&rsquo;e-mail. Il contient un lien raccourci, du genre qui passe par un redirecteur : un service qui cache la vraie destination derrière une adresse courte. En cliquant, on ne voit pas tout de suite où l&rsquo;on va atterrir. C&rsquo;est déjà la première tromperie, petite mais efficace.</p>



<p class="wp-block-paragraph">La seconde phase, c&rsquo;est la page de destination. C&rsquo;est un écran qui se fait passer pour une procédure de confirmation ou de paiement. Visuellement, il rappelle celui d&rsquo;une vraie plateforme, parfois assez bien pour tromper même quelqu&rsquo;un qui travaille dans le secteur depuis des années. C&rsquo;est là que le vrai dommage se produit. Le gestionnaire de l&rsquo;établissement, convaincu de devoir vérifier la disponibilité ou confirmer la réservation, saisit ses propres identifiants. Il peut s&rsquo;agir de ceux de l&rsquo;extranet de Booking ou d&rsquo;Airbnb. Ou bien de ceux de sa propre boîte mail, ou du panneau de gestion du site. À partir de ce moment, les identifiants sont déjà dans les mains de celui qui a envoyé l&rsquo;e-mail. Le reste, aux yeux de la victime, se passe après, quand il est trop tard pour faire machine arrière.</p>



<h2 class="wp-block-heading">Pourquoi un gestionnaire d&rsquo;établissement est une cible facile</h2>



<p class="wp-block-paragraph">Qui travaille dans un établissement touristique reçoit des dizaines de demandes similaires chaque semaine. Des e-mails de clients, des questions sur la disponibilité, des demandes de confirmation de dernière minute. C&rsquo;est un flux constant, souvent géré à la hâte, entre un check-in et l&rsquo;autre. Un message de plus, poli et plausible, se fond bien dans ce flux. Il ne se détache pas. Le point faible n&rsquo;est pas la technologie du gestionnaire. C&rsquo;est son temps limité, et l&rsquo;habitude de répondre vite à quelqu&rsquo;un qui ressemble à un vrai client. C&rsquo;est pour ça que le phishing hôtelier fonctionne si bien : il ne vise pas un système informatique, il vise une personne occupée.</p>



<h2 class="wp-block-heading">Les signaux d&rsquo;alerte à reconnaître</h2>



<p class="wp-block-paragraph">Il y a des signaux concrets. Aucun ne suffit seul à prouver une arnaque, mais ensemble ils racontent une histoire claire. Le contact arrive par e-mail direct, pas par le canal officiel de la plateforme : Booking et Airbnb ont des systèmes de messagerie interne, et un vrai client les utilise presque toujours. Le lien est raccourci ou masqué, donc on ne comprend pas où il mène en lisant seulement l&rsquo;adresse. Le message demande de « vérifier la disponibilité » en cliquant sur un lien, au lieu de laisser le gestionnaire vérifier depuis son propre panneau, en tapant l&rsquo;adresse à la main comme il le ferait toujours. Le ton est aimable, presque prévenant. L&rsquo;urgence est mesurée : elle n&rsquo;effraie pas, mais elle pousse quand même à agir vite, avant d&rsquo;y réfléchir.</p>



<h2 class="wp-block-heading">Pourquoi je l&rsquo;ai classé dans « Entre la chaise et le clavier »</h2>



<p class="wp-block-paragraph">J&rsquo;ai ouvert cette catégorie sur le site exprès pour des cas comme celui-ci. « Entre la chaise et le clavier » est une blague que connaissent bien ceux qui travaillent en sécurité informatique. Elle désigne l&rsquo;endroit exact où se produit presque toujours le dommage : la personne devant l&rsquo;écran, pas le logiciel. La plateforme de réservation n&rsquo;a aucune responsabilité dans cet épisode précis. Le problème n&rsquo;est pas un bug de Booking ou d&rsquo;Airbnb. C&rsquo;est le moment où un humain, peut-être pressé, clique sur un lien qu&rsquo;il n&rsquo;aurait pas dû cliquer. Le comprendre aide à mieux se défendre. Un antivirus ne suffit pas. Il faut l&rsquo;habitude de s&rsquo;arrêter une seconde avant de cliquer, chaque fois.</p>



<p class="wp-block-paragraph">Si les identifiants finissent malgré tout entre de mauvaises mains, il faut évaluer s&rsquo;il faut les changer tout de suite, partout où ils sont utilisés. J&rsquo;en ai parlé en racontant la <a href="https://www.cisilino.com/fr/2026/10/31/rotation-identifiants-base-de-donnees-faille-ispconfig/">rotation des identifiants de base de données après une faille</a>. Le contexte technique est différent, mais le principe reste le même.</p>



<h2 class="wp-block-heading">Comment protéger son établissement</h2>



<p class="wp-block-paragraph">La première règle est simple, mais il faut la répéter souvent : ne jamais saisir ses identifiants en cliquant sur un lien reçu par e-mail, même s&rsquo;il paraît urgent. Si quelqu&rsquo;un écrit en disant vouloir réserver, on vérifie depuis son propre panneau. On tape l&rsquo;adresse à la main, on ne suit pas un lien envoyé par un inconnu. La deuxième règle concerne l&rsquo;authentification à deux facteurs. Il faut l&rsquo;activer sur chaque compte qui compte : extranet de la plateforme, boîte mail, panneau du site. Même si les identifiants sont volés, un second facteur bloque quand même l&rsquo;accès, dans la plupart des cas. La troisième règle, c&rsquo;est le signalement. Chaque message suspect doit être signalé à la plateforme, qui utilise ces données pour bloquer d&rsquo;autres tentatives similaires. Ce n&rsquo;est pas un hasard si la gestion de ces épisodes est l&rsquo;une des raisons de l&rsquo;enquête européenne. Le problème du phishing hôtelier concerne aussi les plateformes, pas seulement les gestionnaires individuels.</p>



<p class="wp-block-paragraph">Pour suivre les développements, on peut lire <a href="https://www.agi.it/estero/news/2026-10-21/booking-indagine-ue-truffe-phishing-39642272/" target="_blank" rel="noopener">le récit de l&rsquo;agence italienne AGI sur l&rsquo;enquête de la Commission contre Booking.com</a>. Il résume bien ce qui se passe. Et pourquoi cela concerne aussi les petits établissements, pas seulement les grandes chaînes.</p>



<h2 class="wp-block-heading">Si vous avez déjà cliqué ou saisi des données</h2>



<p class="wp-block-paragraph">Si c&rsquo;est déjà arrivé, il vaut mieux agir vite. Changez immédiatement le mot de passe du compte concerné. Changez-le aussi partout où le même mot de passe a été réutilisé : c&rsquo;est une erreur courante, et ceux qui volent des identifiants le savent bien. Activez la vérification en deux étapes, si vous ne l&rsquo;aviez pas déjà fait. Vérifiez l&rsquo;historique des connexions du compte. Cherchez des sessions ou des appareils que vous ne reconnaissez pas. Prévenez la plateforme, qui a des procédures dédiées aux comptes compromis. Si vous aviez joint de vrais documents dans l&rsquo;e-mail, surveillez-les : une pièce d&rsquo;identité volée peut être réutilisée ailleurs, pas seulement pour d&rsquo;autres arnaques liées au secteur hôtelier.</p>



<p class="wp-block-paragraph">Le cas que j&rsquo;ai vu n&rsquo;a pas fait de dégâts. La personne qui l&rsquo;a reçu s&rsquo;est arrêtée un instant avant de cliquer, et me l&rsquo;a signalé. Ça a suffi. La technologie aide, les filtres anti-spam aident, mais au final, c&rsquo;est toujours la personne qui décide de cliquer ou non qui fait la différence. Le problème du phishing hôtelier, presque toujours, reste entre la chaise et le clavier.</p><p>The post <a href="https://www.cisilino.com/fr/2026/10/31/phishing-hotelier-email-piege-gestionnaire-etablissement/">Phishing hôtelier : l’e-mail piège que j’ai vue arriver chez un gestionnaire d’établissement</a> first appeared on <a href="https://www.cisilino.com/fr/">Matteo Cisilino</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.cisilino.com/fr/2026/10/31/phishing-hotelier-email-piege-gestionnaire-etablissement/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Rotation des identifiants de base de données après une faille ISPConfig</title>
		<link>https://www.cisilino.com/fr/2026/10/31/rotation-identifiants-base-de-donnees-faille-ispconfig/</link>
					<comments>https://www.cisilino.com/fr/2026/10/31/rotation-identifiants-base-de-donnees-faille-ispconfig/#respond</comments>
		
		<dc:creator><![CDATA[matteocisilino]]></dc:creator>
		<pubDate>Sat, 31 Oct 2026 10:03:56 +0000</pubDate>
				<category><![CDATA[Serveurs et bases de données]]></category>
		<category><![CDATA[gestion de serveurs]]></category>
		<category><![CDATA[ISPConfig]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[réponse aux incidents]]></category>
		<category><![CDATA[rotation des identifiants]]></category>
		<category><![CDATA[script bash]]></category>
		<guid isPermaLink="false">https://www.cisilino.com/?p=1416</guid>

					<description><![CDATA[<p>Après une faille ISPConfig, je lance la rotation des identifiants de base de données avec reset_DB_password.sh : détection du rôle, sauvegardes automatiques et dry-run obligatoire.</p>
<p>The post <a href="https://www.cisilino.com/fr/2026/10/31/rotation-identifiants-base-de-donnees-faille-ispconfig/">Rotation des identifiants de base de données après une faille ISPConfig</a> first appeared on <a href="https://www.cisilino.com/fr/">Matteo Cisilino</a>.</p>]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">Je lance la rotation des identifiants dès que je suspecte une faille. Pas après l&rsquo;avoir confirmée. La rotation des identifiants de base de données sur un serveur ISPConfig a l&rsquo;air d&rsquo;une maintenance de routine. Elle cesse de l&rsquo;être le jour où vous trouvez un web shell sur un site hébergé. Ou un fichier de configuration que vous ne savez pas expliquer, posé dans une sauvegarde publique. À ce moment-là, chaque mot de passe lié à cette base de données doit être nouveau. Vérifié. Documenté. Pas seulement supposé correct.</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" src="https://www.cisilino.com/wp-content/uploads/2026/10/database-credential-rotation-ispconfig.webp" alt="rotation des identifiants de base de données : cadenas et clé au-dessus d'ISPConfig" width="1200" height="630"/></figure>



<h2 class="wp-block-heading">Quand la rotation des identifiants cesse-t-elle d&rsquo;être optionnelle ?</h2>



<p class="wp-block-paragraph">Quelques scénarios reviennent assez souvent pour que je garde un plan de rotation prêt à l&rsquo;avance. Je préfère ne pas en improviser un sous pression.</p>



<p class="wp-block-paragraph">Un plugin ou un CMS sur un site hébergé se fait compromettre. J&rsquo;ai raconté un cas réel sur ce type de serveur dans <a href="https://www.cisilino.com/fr/2026/10/29/php2shell-cve-2026-109618-mitigation-serveurs/">PHP2Shell : comment j&rsquo;ai protégé mes serveurs en attendant le correctif</a>, une vulnérabilité PHP qui permettait à un attaquant de déposer un web shell avant qu&rsquo;un correctif n&rsquo;existe. Une fois qu&rsquo;un web shell tourne sous un utilisateur d&rsquo;hébergement, il peut souvent lire le config.inc.php propre à ce site. Sur un serveur ISPConfig partagé, ce fichier se trouve juste à côté des identifiants de la base de données du panneau de contrôle lui-même. Pas seulement celui que l&rsquo;attaquant visait au départ.</p>



<p class="wp-block-paragraph">Un fichier de configuration se retrouve là où il ne devrait pas être. Une archive de sauvegarde oubliée dans un dossier public. Un dépôt poussé avec un fichier égaré dedans. Un journal plus lisible que prévu. config.inc.php et mysql_clientdb.conf n&rsquo;ont rien à faire dans aucun de ces endroits. Les erreurs arrivent malgré tout, y compris les miennes.</p>



<p class="wp-block-paragraph">Un administrateur système quitte l&rsquo;équipe. Quel que soit le ton du départ, les identifiants de base de données partagés qu&rsquo;il détenait ne m&rsquo;inspirent plus une confiance totale. La confiance ne se transmet pas automatiquement quand quelqu&rsquo;un passe la porte.</p>



<p class="wp-block-paragraph">Une intrusion suspectée, même non confirmée. C&rsquo;est le cas le plus difficile à expliquer à qui n&rsquo;a jamais géré un serveur sous suspicion d&rsquo;attaque. On n&rsquo;attend pas la preuve avant d&rsquo;agir. On présume la compromission et on lance la rotation. Une rotation inutile coûte un après-midi. Une rotation sautée, après une faille réelle, peut coûter tous les sites hébergés par le serveur.</p>



<h2 class="wp-block-heading">Pourquoi la rotation manuelle des identifiants est si sujette aux erreurs</h2>



<p class="wp-block-paragraph">La première fois que j&rsquo;ai fait la rotation des identifiants d&rsquo;ISPConfig à la main, j&rsquo;ai sous-estimé le nombre de fichiers concernés. Ils doivent tous changer ensemble, sinon quelque chose casse discrètement quelques heures plus tard.</p>



<p class="wp-block-paragraph">Il y a config.inc.php côté serveur, et une seconde copie côté interface. Les deux doivent recevoir les mêmes nouvelles valeurs. Il y a mysql_clientdb.conf, que ISPConfig lit pour gérer la base de données de chaque site hébergé, pas seulement son propre ménage interne. Dovecot, Pure-FTPd et Postfix conservent chacun leur propre copie de certains de ces identifiants. Le mail et le FTP peuvent cesser de s&rsquo;authentifier silencieusement si vous mettez à jour l&rsquo;utilisateur de la base de données et oubliez un seul de ces trois services.</p>



<p class="wp-block-paragraph">Il y a ensuite la topologie Master/Slave de certaines de mes installations. Un nœud Slave s&rsquo;authentifie auprès de la base de données de son Master via le réseau, avec un mot de passe distinct. Ce mot de passe doit être tourné sur le Master lui-même, pas seulement en local. Si l&rsquo;ordre est mauvais, un Slave peut se retrouver verrouillé hors du Master même qu&rsquo;il est censé répliquer.</p>



<p class="wp-block-paragraph">Rien de tout cela n&rsquo;est conceptuellement difficile. C&rsquo;est juste beaucoup de fichiers. Plusieurs services à redémarrer, dans un ordre sensé. Presque aucune tolérance pour une faute de frappe, surtout sous pression, juste après avoir trouvé quelque chose que vous ne vouliez pas trouver. Cette combinaison explique pourquoi la rotation des identifiants paraissait toujours plus risquée à la main que la tâche elle-même ne devrait l&rsquo;être. C&rsquo;est pour cette raison que j&rsquo;ai écrit reset_DB_password.sh, après avoir vécu ce problème moi-même plus d&rsquo;une fois.</p>



<h2 class="wp-block-heading">Ce que reset_DB_password.sh fait réellement</h2>



<p class="wp-block-paragraph">reset_DB_password.sh détecte si le nœud est Standalone, Master ou Slave. Il exécute ensuite uniquement les phases que ce rôle exige.</p>



<p class="wp-block-paragraph">La phase A tourne le mot de passe root local de MySQL. C&rsquo;est le mot de passe qu&rsquo;ISPConfig utilise lui-même pour gérer la base de données de chaque site hébergé. Le script met à jour mysql_clientdb.conf avec la nouvelle valeur.</p>



<p class="wp-block-paragraph">La phase B tourne le mot de passe de l&rsquo;utilisateur de contrôle ispconfig. Elle met à jour config.inc.php côté serveur et côté interface. Puis elle met à jour les identifiants correspondants dans Dovecot, Pure-FTPd et Postfix, pour que le mail et le FTP continuent de s&rsquo;authentifier sans passer manuellement par trois fichiers de configuration supplémentaires.</p>



<p class="wp-block-paragraph">La phase C ne tourne que sur un Slave. Elle se connecte à distance à la base de données du Master. Elle tourne là le mot de passe de l&rsquo;utilisateur Slave, puis met à jour dbmaster_password en local, pour que la réplication continue de s&rsquo;authentifier correctement avec la nouvelle valeur.</p>



<p class="wp-block-paragraph">Après la phase B, le script propose de redémarrer Dovecot, Pure-FTPd et Postfix pour vous. Je dis presque toujours oui. Une rotation d&rsquo;identifiants qui laisse un service mail tourner avec l&rsquo;ancien mot de passe n&rsquo;est pas terminée, elle est juste silencieusement cassée. Redémarrer dans la même exécution, juste après le changement des fichiers de configuration, garde tout cela dans une seule courte fenêtre de maintenance au lieu de trois fenêtres séparées découvertes plus tard.</p>



<h2 class="wp-block-heading">Des sauvegardes avant tout changement</h2>



<p class="wp-block-paragraph">Avant de toucher le moindre fichier, le script fait une copie rsync complète de /usr/local/ispconfig/ dans un dossier horodaté. Il tente aussi un mysqldump non bloquant des bases mysql et dbispconfig. Non bloquant volontairement : je préfère terminer une rotation d&rsquo;identifiants plutôt qu&rsquo;attendre un dump bloqué pour une raison qui n&rsquo;a rien à voir. Chaque fichier de configuration qu&rsquo;il modifie reçoit sa propre copie .bak avant qu&rsquo;une seule chaîne à l&rsquo;intérieur ne soit remplacée.</p>



<p class="wp-block-paragraph">Rien de tout cela ne remplace une stratégie de sauvegarde indépendante. Je prends toujours un snapshot séparé, ou une sauvegarde complète, avant de lancer ceci sur un serveur qui compte vraiment. Le propre avertissement du script dit la même chose, de façon plus directe que je ne viens de le faire.</p>



<h2 class="wp-block-heading">Toujours un dry run d&rsquo;abord</h2>



<p class="wp-block-paragraph">Chaque phase demande une confirmation avant de toucher à quoi que ce soit. &#8211;dry-run simule une exécution complète sans toucher un seul fichier. J&rsquo;utilise dry-run en premier sur chaque serveur, chaque fois. Même sur ceux dont j&rsquo;ai déjà tourné les identifiants, et que je crois bien connaître. &#8211;skip-local-root saute la phase A, pour quand seul le mot de passe de l&rsquo;utilisateur de contrôle doit changer. &#8211;role=master ou &#8211;role=slave remplace la détection automatique, pour le cas rare où elle ne lit pas correctement la topologie d&rsquo;un serveur.</p>



<p class="wp-block-paragraph">Les mots de passe qu&rsquo;il génère comptent 32 caractères, lettres et chiffres uniquement. Assez longs pour résister à une tentative de deviner. Assez simples pour que les parseurs de MySQL et de PHP ne trébuchent jamais sur un symbole égaré dans une chaîne de connexion. J&rsquo;ai testé le script sur ISPConfig 3.3.1p1. Je ne l&rsquo;ai pas lancé sur des branches plus anciennes ou plus récentes. Je ne présumerais pas un comportement identique là-bas, sans vérifier moi-même d&rsquo;abord.</p>



<p class="wp-block-paragraph">Le rôle d&rsquo;un nœud n&rsquo;est pas toujours évident au premier coup d&rsquo;œil, surtout sur un serveur dont vous avez hérité plutôt que celui que vous avez construit vous-même. C&rsquo;est pour cela que &#8211;role existe, et pourquoi la sortie du dry-run vaut la peine d&rsquo;être lue ligne par ligne la première fois, pas survolée. Je préfère passer deux minutes à confirmer qu&rsquo;un Slave est vraiment un Slave plutôt que de le découvrir à la dure en plein milieu de la rotation.</p>



<h2 class="wp-block-heading">Ce que je vous dirais avant de l&rsquo;exécuter</h2>



<p class="wp-block-paragraph"><strong>Avertissement</strong> : le script est fourni tel quel, à titre informatif. Son utilisation se fait entièrement à vos risques : je n&rsquo;assume aucune responsabilité pour une perte de données, une interruption de service, ou toute erreur causée par un usage incorrect ou par un contexte différent de celui dans lequel je l&rsquo;utilise moi-même. Gardez toujours une sauvegarde indépendante ou un snapshot de VM avant de l&rsquo;exécuter en production, quoi que la propre étape de sauvegarde du script capture déjà pour vous.</p>



<p class="wp-block-paragraph">C&rsquo;est un logiciel libre. Vous pouvez le redistribuer et le modifier, avec attribution à moi comme auteur original. Le code source de reset_DB_password.sh, et le reste de la collection ispconfig-fast-tools, est sur GitHub à l&rsquo;adresse <a href="https://github.com/matteocisilino/ispconfig-fast-tools" target="_blank" rel="noopener">github.com/matteocisilino/ispconfig-fast-tools</a>.</p>



<h2 class="wp-block-heading">La rotation des identifiants de base de données est une habitude, pas une tâche de nettoyage</h2>



<p class="wp-block-paragraph">La rotation des identifiants de base de données après une faille confirmée, c&rsquo;est simplement une réponse aux incidents compétente. La plupart des administrateurs le feraient sans qu&rsquo;on ait à le leur répéter. L&rsquo;habitude la plus difficile, c&rsquo;est de le faire après une faille simplement suspectée, avant d&rsquo;avoir la moindre preuve. C&rsquo;est la seule version du plan qui limite vraiment les dégâts, tant qu&rsquo;ils sont encore limitables. Un script qui exécute les bonnes phases selon le rôle d&rsquo;un serveur, prend ses propres sauvegardes d&rsquo;abord, et me laisse faire un dry-run complet avant de toucher à quoi que ce soit de réel. Voilà ce qui rend cette habitude praticable un mardi soir, plutôt que théorique dans un article de blog.</p>



<p class="wp-block-paragraph">ISPConfig, MySQL, PHP, Dovecot, Pure-FTPd, Postfix et les autres noms mentionnés sont des marques déposées de leurs propriétaires respectifs. Ils sont utilisés uniquement pour identifier les produits.</p><p>The post <a href="https://www.cisilino.com/fr/2026/10/31/rotation-identifiants-base-de-donnees-faille-ispconfig/">Rotation des identifiants de base de données après une faille ISPConfig</a> first appeared on <a href="https://www.cisilino.com/fr/">Matteo Cisilino</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.cisilino.com/fr/2026/10/31/rotation-identifiants-base-de-donnees-faille-ispconfig/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Vulnérabilité kernel Linux : un use-after-free dans le TCP IPv4</title>
		<link>https://www.cisilino.com/fr/2026/10/31/vulnerabilite-kernel-linux-tcp-cve-2026-98432/</link>
					<comments>https://www.cisilino.com/fr/2026/10/31/vulnerabilite-kernel-linux-tcp-cve-2026-98432/#respond</comments>
		
		<dc:creator><![CDATA[matteocisilino]]></dc:creator>
		<pubDate>Sat, 31 Oct 2026 09:19:23 +0000</pubDate>
				<category><![CDATA[Serveurs et bases de données]]></category>
		<category><![CDATA[CVE]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[kernel Linux]]></category>
		<category><![CDATA[sécurité des serveurs]]></category>
		<guid isPermaLink="false">https://www.cisilino.com/?p=1407</guid>

					<description><![CDATA[<p>Vulnérabilité kernel Linux dans le TCP IPv4 (CVE-2026-98432, CVSS 9,8) : Debian est déjà corrigé, Ubuntu et RHEL attendent encore un correctif.</p>
<p>The post <a href="https://www.cisilino.com/fr/2026/10/31/vulnerabilite-kernel-linux-tcp-cve-2026-98432/">Vulnérabilité kernel Linux : un use-after-free dans le TCP IPv4</a> first appeared on <a href="https://www.cisilino.com/fr/">Matteo Cisilino</a>.</p>]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">Je g&egrave;re des serveurs Debian en production depuis des ann&eacute;es. Chaque fois qu&#8217;un CVE sur le kernel sort, je m&#8217;arr&ecirc;te pour en lire les d&eacute;tails. Puis je d&eacute;cide s&#8217;il faut mettre &agrave; jour tout de suite ou attendre. Cette fois, l&#8217;histoire est plus compliqu&eacute;e que d&#8217;habitude&nbsp;: il y a une <strong>vuln&eacute;rabilit&eacute; kernel Linux</strong> dans le TCP IPv4, un score CVSS contest&eacute; entre fournisseurs, et m&ecirc;me un exploit root pr&eacute;sum&eacute; construit par une intelligence artificielle. Commen&ccedil;ons par une question qui semble secondaire, mais qui ne l&#8217;est pas&nbsp;: qu&#8217;est-ce que MPTCP, et pourquoi &ccedil;a compte m&ecirc;me si vous ne l&#8217;utilisez pas.</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://www.cisilino.com/wp-content/uploads/2026/10/vulnerabilita-kernel-linux-tcp-cve-2026-98432.webp" alt="vuln&eacute;rabilit&eacute; kernel Linux dans le TCP IPv4, pingouin stylis&eacute; avec un bouclier Debian corrig&eacute;" width="1200" height="630"/></figure>



<h2 class="wp-block-heading">Qu&#8217;est-ce que MPTCP et pourquoi &ccedil;a concerne aussi ceux qui ne l&#8217;utilisent pas</h2>



<p class="wp-block-paragraph">Multipath TCP (MPTCP) est le standard RFC 8684. Il &eacute;tend le TCP classique pour faire circuler une seule connexion sur plusieurs chemins r&eacute;seau &agrave; la fois. Un t&eacute;l&eacute;phone peut utiliser le WiFi et le r&eacute;seau cellulaire au m&ecirc;me moment, pour la m&ecirc;me connexion. Un serveur avec plusieurs interfaces peut faire pareil, pour la redondance ou pour additionner la bande passante. Apple l&#8217;utilise en production depuis iOS 7, en 2013, pour Siri&nbsp;: c&#8217;est le cas d&#8217;usage r&eacute;el le plus connu. Certains op&eacute;rateurs mobiles, par exemple en Cor&eacute;e du Sud, l&#8217;exploitent pour le bonding WiFi/LTE. Plusieurs data centers l&#8217;adoptent pour le multi-homing entre diff&eacute;rents uplinks. Dans le kernel Linux mainline, il est pr&eacute;sent depuis la 5.6.</p>



<p class="wp-block-paragraph">Le point qui m&#8217;a fait lever un sourcil est ailleurs. Depuis la version 1.24, les programmes &eacute;crits en Go exigent MPTCP par d&eacute;faut pour les sockets en &eacute;coute. Le Go Security Team l&#8217;a confirm&eacute; le 29 octobre. Et il a donn&eacute; un avertissement g&ecirc;nant&nbsp;: le bug dont on parle aujourd&#8217;hui n&#8217;est pas sp&eacute;cifique &agrave; MPTCP. Un syst&egrave;me sans listener MPTCP actif peut rester quand m&ecirc;me expos&eacute; &agrave; des attaques similaires. Le code vuln&eacute;rable se trouve dans le chemin TCP IPv4 g&eacute;n&eacute;rique, pas dans un module optionnel. On peut d&eacute;sactiver MPTCP programme par programme, avec la variable <code>GODEBUG=multipathtcp=0</code> &agrave; l&#8217;ex&eacute;cution. Mais le Go Security Team qualifie cette mitigation de &laquo;&nbsp;fragile&nbsp;&raquo;&nbsp;: il suffit d&#8217;un seul listener MPTCP rest&eacute; expos&eacute; pour l&#8217;annuler. Personne n&#8217;a d&eacute;montr&eacute; que chaque exploit fonctionnel d&eacute;pend vraiment de MPTCP. Voil&agrave; pourquoi le code MPTCP reste une surface d&#8217;attaque, m&ecirc;me si vous ne l&#8217;activez jamais consciemment dans votre stack&nbsp;: il suffit qu&#8217;il soit compil&eacute; dans le kernel et atteignable.</p>



<p class="wp-block-paragraph">Le projet MPTCP lui-m&ecirc;me d&eacute;clare, sur sa propre page, que les principales distributions Linux actuelles livrent le kernel avec le support MPTCP compil&eacute; par d&eacute;faut (<code>CONFIG_MPTCP=y</code>). Il cite explicitement Debian, Ubuntu, RHEL et Fedora. C&#8217;est une d&eacute;claration du projet lui-m&ecirc;me, pas une v&eacute;rification ind&eacute;pendante distribution par distribution, mais le concept reste valable&nbsp;: le support est activ&eacute; au niveau du kernel, pas &laquo;&nbsp;opt-in&nbsp;&raquo; au niveau du syst&egrave;me d&#8217;exploitation. Seule la n&eacute;gociation par connexion individuelle reste &agrave; la charge de l&#8217;application.</p>



<h2 class="wp-block-heading">La vuln&eacute;rabilit&eacute; kernel Linux CVE-2026-98432 en bref</h2>



<p class="wp-block-paragraph">Le CVE team du kernel Linux a publi&eacute; la CVE-2026-98432 le 15 octobre 2026. Le correctif upstream avait d&eacute;j&agrave; &eacute;t&eacute; appliqu&eacute; dix jours plus t&ocirc;t, le 5 octobre. Il arrive souvent que la publication suive le commit avec un certain retard. Le score CVSS de 9,8 (critique) n&#8217;est arriv&eacute; que le 24 octobre, neuf jours apr&egrave;s la publication de la CVE.</p>



<p class="wp-block-paragraph">Le probl&egrave;me se situe dans la gestion du handshake TCP pour IPv4, en particulier dans la fonction <code>tcp_v4_syn_recv_sock()</code>. Quand une connexion est cr&eacute;&eacute;e, les options IP du paquet SYN sont transmises du request socket en attente vers le nouveau socket. Par exemple Record Route ou Timestamp, si le client les inclut dans un SYN forg&eacute;. Le probl&egrave;me est qu&#8217;elles sont transmises par r&eacute;f&eacute;rence, pas par copie, et sans le lock du listener. Selon l&#8217;analyse technique du patch, les structures concern&eacute;es s&#8217;appellent <code>inet_opt</code> et <code>ireq_opt</code>. Un deuxi&egrave;me CPU peut lib&eacute;rer ce buffer avec <code>kfree()</code>, appel&eacute; depuis <code>inet_sock_destruct()</code> ou depuis <code>tcp_v4_reqsk_destructor()</code>. Pendant ce temps, un premier CPU est encore en train de le lire dans <code>ip_options_build()</code>, pour construire le SYNACK. C&#8217;est un classique use-after-free caus&eacute; par une race condition. Le chemin IPv6 &eacute;quivalent, <code>tcp_v6_syn_recv_sock()</code>, copie les options au lieu de les transmettre par r&eacute;f&eacute;rence&nbsp;: il n&#8217;est pas vuln&eacute;rable &agrave; la race principale. Il existe aussi une seconde voie d&#8217;attaque, via la migration des request-sockets&nbsp;: <code>net.ipv4.tcp_migrate_req=1</code> ou bien un programme eBPF <code>BPF_SK_REUSEPORT_SELECT_OR_MIGRATE</code>. Les deux sont d&eacute;sactiv&eacute;es par d&eacute;faut.</p>



<p class="wp-block-paragraph">Le bug est distant et ne n&eacute;cessite ni authentification ni interaction de l&#8217;utilisateur, selon l&#8217;&eacute;valuation du kernel team. Il est pr&eacute;sent depuis la version 4.4 du kernel. Le correctif est signé par Eric Dumazet, signal&eacute; par Xinyang Ge d&#8217;Anthropic. Il d&eacute;place la lib&eacute;ration de la m&eacute;moire apr&egrave;s une grace period RCU, avec <code>kfree_rcu()</code>&nbsp;: ainsi aucun CPU ne peut plus lire un buffer d&eacute;j&agrave; lib&eacute;r&eacute;. Les versions stables corrig&eacute;es sont 5.10.272, 5.15.223, 6.1.190, 6.6.159, 6.12.113, 6.18.56, 7.2.10 et la mainline depuis la 7.3-rc7.</p>



<h2 class="wp-block-heading">Scores CVSS discordants&nbsp;: les fournisseurs ne sont pas tous d&#8217;accord</h2>



<p class="wp-block-paragraph">C&#8217;est ici que l&#8217;histoire se complique. Le kernel CVE team et Ubuntu &eacute;valuent la complexit&eacute; d&#8217;attaque comme basse, et donnent 9,8 (critique). Oracle et SUSE donnent au contraire 8,1 (important)&nbsp;: m&ecirc;me vecteur CVSS, mais complexit&eacute; d&#8217;attaque haute. Red Hat, curieusement, a deux &eacute;valuations qui ne co&iuml;ncident pas entre elles. La page CVE publique affiche &laquo;&nbsp;Moderate, 5.9&nbsp;&raquo;. Le fichier d&#8217;advisory lisible par machine, mis &agrave; jour le 29 octobre, affiche au contraire &laquo;&nbsp;Important, 8.1&nbsp;&raquo;, avec un impact &eacute;lev&eacute; sur la confidentialit&eacute; et l&#8217;int&eacute;grit&eacute;. Le m&ecirc;me jour, le bug tracker interne de Red Hat a relev&eacute; la s&eacute;v&eacute;rit&eacute; de medium &agrave; high. Amazon, de son c&ocirc;t&eacute;, attribue 7,0. Au moment o&ugrave; j&#8217;&eacute;cris, le NVD n&#8217;a pas encore publi&eacute; son propre score.</p>



<p class="wp-block-paragraph">Il faut le dire honn&ecirc;tement. Cette incoh&eacute;rence interne &agrave; Red Hat n&#8217;est pas un d&eacute;tail que j&#8217;ai d&eacute;duit moi-m&ecirc;me&nbsp;: c&#8217;est ainsi que la rapporte l&#8217;article original de The Hacker News, ma source principale pour ces donn&eacute;es. Ce n&#8217;est pas la premi&egrave;re fois qu&#8217;un fournisseur publie deux chiffres diff&eacute;rents pour le m&ecirc;me bug, sur des canaux diff&eacute;rents. Mais ici, le saut de &laquo;&nbsp;mod&eacute;r&eacute;&nbsp;&raquo; &agrave; &laquo;&nbsp;important&nbsp;&raquo; le m&ecirc;me jour en dit long. M&ecirc;me pour ceux qui &eacute;crivent le code, estimer avec certitude l&#8217;exploitabilit&eacute; r&eacute;elle d&#8217;une race condition dans le kernel est difficile.</p>



<h2 class="wp-block-heading">&Eacute;tat des correctifs&nbsp;: Debian d&eacute;j&agrave; corrig&eacute;, d&#8217;autres pas encore</h2>



<p class="wp-block-paragraph">C&#8217;est le point qui me concerne le plus directement&nbsp;: les h&eacute;bergements que je g&egrave;re tournent sur Debian stable. Et ici les faits parlent clairement, sans besoin d&#8217;ajouter d&#8217;emphase&nbsp;: <strong>Debian a d&eacute;j&agrave; corrig&eacute; cette vuln&eacute;rabilit&eacute; kernel Linux</strong>, aussi bien sur trixie que sur bookworm. Debian trixie (stable) a &eacute;t&eacute; corrig&eacute;e le 16 octobre 2026, avec le paquet <code>linux 6.12.113-1</code>, avis DSA-6568-1. Debian 12 (bookworm) a &eacute;t&eacute; corrig&eacute;e en deux &eacute;tapes&nbsp;: le 17 et le 22 octobre 2026, avec <code>linux 6.1.190-1</code> (avis DLA-4841-1) et <code>linux-6.12 6.12.113-1~deb12u1</code> (avis DLA-4850-1). Dans son propre tableau de suivi, Debian ne liste pas de score CVSS s&eacute;par&eacute; pour cette CVE. Elle se limite &agrave; indiquer l&#8217;&eacute;tat du correctif pour chaque release&nbsp;: c&#8217;est l&#8217;information qui compte vraiment, pour qui doit d&eacute;cider de red&eacute;marrer un serveur.</p>



<p class="wp-block-paragraph">Comparer cela &agrave; l&#8217;&eacute;tat d&#8217;autres distributions tr&egrave;s utilis&eacute;es aide &agrave; donner du poids &agrave; la chose. Au 30 octobre, Red Hat a mis &agrave; jour l&#8217;&eacute;tat de RHEL 8, 9, 10 et OpenShift 4. Avant, c&#8217;&eacute;tait &laquo;&nbsp;fix deferred&nbsp;&raquo; (not&eacute; le 29 octobre), maintenant c&#8217;est &laquo;&nbsp;affected&nbsp;&raquo;. Aucune date de sortie n&#8217;a &eacute;t&eacute; communiqu&eacute;e. Ubuntu, sur toutes les versions support&eacute;es (22.04, 24.04, 26.04, 26.10), reste &laquo;&nbsp;en cours de traitement&nbsp;&raquo;, sans date. Ubuntu 16.04, 18.04 et 20.04 sont vuln&eacute;rables, sans m&ecirc;me un correctif list&eacute;. SUSE Linux Enterprise Server, de la SP4 &agrave; la SP7 plus la 16.0, est dans la m&ecirc;me situation. Oracle Linux (UEK), openSUSE Leap 16.0, SUSE Linux Micro 6.2 et Amazon Linux 2023 sont au contraire d&eacute;j&agrave; corrig&eacute;s. RHEL 7 n&#8217;est pas affect&eacute;&nbsp;: le chemin de code vuln&eacute;rable n&#8217;a jamais &eacute;t&eacute; distribu&eacute; sur cette release.</p>



<p class="wp-block-paragraph">Je ne dis pas cela pour faire concurrence &agrave; Ubuntu ou RHEL. Ce sont des distributions s&eacute;rieuses, avec des processus de s&eacute;curit&eacute; robustes. Je le dis parce que sur ce bug pr&eacute;cis, dans cette fen&ecirc;tre temporelle, les faits sont les suivants&nbsp;: ceux qui s&#8217;appuient sur des h&eacute;bergements bas&eacute;s sur Debian stable ont d&eacute;j&agrave; le correctif install&eacute;. Sur d&#8217;autres distributions tr&egrave;s utilis&eacute;es, en revanche, le serveur reste expos&eacute; pendant une dur&eacute;e ind&eacute;termin&eacute;e. C&#8217;est un avantage concret, v&eacute;rifiable en regardant les dates. Ce n&#8217;est pas une opinion sur le projet Debian en g&eacute;n&eacute;ral.</p>



<h2 class="wp-block-heading">L&#8217;exploit (rapport&eacute;, non v&eacute;rifi&eacute; de fa&ccedil;on ind&eacute;pendante) d&#8217;Anthropic</h2>



<p class="wp-block-paragraph">La partie la plus inhabituelle de cette histoire concerne Anthropic, l&#8217;entreprise qui a signal&eacute; le bug en premier via Xinyang Ge. Selon les rapports du secteur, un de ses mod&egrave;les d&#8217;IA internes, non publi&eacute; publiquement, a construit seul un exploit root fonctionnel. En partant uniquement du patch et du rapport comme prompt. L&#8217;attaque en deux phases fonctionnerait ainsi. Dans la premi&egrave;re phase, la race fait envoyer &agrave; l&#8217;attaquant des octets suppl&eacute;mentaires de la r&eacute;ponse du kernel. De l&agrave;, il r&eacute;cup&egrave;re une adresse kernel, pour d&eacute;samorcer KASLR. Dans la seconde phase, le m&ecirc;me bug provoquerait un d&eacute;passement de buffer. Il &eacute;crase un pointeur de callback avec l&#8217;adresse d&#8217;une charge utile d&eacute;j&agrave; plac&eacute;e en m&eacute;moire kernel par l&#8217;attaquant. Quand le kernel appelle ce pointeur, la charge utile ex&eacute;cute une commande shell au choix en tant que root. Une race perdue ferait &eacute;chouer uniquement cette tentative de connexion, sans faire planter le syst&egrave;me&nbsp;: des tentatives r&eacute;p&eacute;t&eacute;es seraient donc possibles. Dans le test d&eacute;crit par Anthropic&nbsp;: 48 minutes pour voler l&#8217;adresse kernel, 5 minutes suppl&eacute;mentaires pour arriver &agrave; l&#8217;ex&eacute;cution de commandes.</p>



<p class="wp-block-paragraph">Red Hat affirme qu&#8217;un attaquant distant qui atteint un service TCP expos&eacute; peut en g&eacute;n&eacute;ral d&eacute;clencher la race. L&#8217;exploit root d&eacute;crit par Anthropic, cependant, aurait vis&eacute; sp&eacute;cifiquement des serveurs avec un listener multipath TCP actif. Le billet d&#8217;Anthropic ne pr&eacute;cise pas si un serveur sans MPTCP est exploitable de la m&ecirc;me mani&egrave;re. Ni le record CVE ni le correctif upstream ne mentionnent MPTCP &agrave; aucun moment. C&#8217;est la presse sp&eacute;cialis&eacute;e, et non une source primaire, qui rapporte ce lien&nbsp;: je l&#8217;&eacute;cris donc avec le scepticisme qu&#8217;il m&eacute;rite, pas comme un fait &eacute;tabli &agrave; cent pour cent. Anthropic n&#8217;a publi&eacute; ni le code de l&#8217;exploit, ni la version exacte du kernel utilis&eacute;e, ni la configuration du serveur cible. Une autre soci&eacute;t&eacute;, Innora, a publi&eacute; une analyse de la cause racine, avec un environnement de reproduction QEMU. Elle a d&eacute;clar&eacute; qu&#8217;elle ne publierait pas d&#8217;exploit arm&eacute; &agrave; court terme. Pour l&#8217;instant, il n&#8217;y a aucune preuve d&#8217;exploitation r&eacute;elle par des fournisseurs ou des CERT. Le bug ne figure pas dans le catalogue CISA KEV, selon la copie mise &agrave; jour par le CIRCL du Luxembourg au 28 octobre.</p>



<h2 class="wp-block-heading">Que faire maintenant sur vos serveurs</h2>



<p class="wp-block-paragraph">Aucun fournisseur n&#8217;a publi&eacute; de contournement officiellement sanctionn&eacute; pour cette <strong>vuln&eacute;rabilit&eacute; kernel Linux</strong>. Red Hat dit explicitement qu&#8217;aucune des mesures qui circulent jusqu&#8217;&agrave; pr&eacute;sent n&#8217;atteint son standard de facilit&eacute; de d&eacute;ploiement et de stabilit&eacute;. La mitigation principale reste d&#8217;appliquer le kernel corrig&eacute; et de red&eacute;marrer, quand le correctif est disponible pour votre distribution. Sur Debian, c&#8217;est d&eacute;j&agrave; le cas. Sur RHEL et Ubuntu, pas encore, au moment o&ugrave; j&#8217;&eacute;cris.</p>



<p class="wp-block-paragraph">Comme d&eacute;fense en profondeur, pas comme solution d&eacute;finitive, certaines choses ont du sens. V&eacute;rifier que <code>net.ipv4.tcp_migrate_req</code> est bien &agrave; 0. Contr&ocirc;ler qu&#8217;aucun programme eBPF <code>BPF_SK_REUSEPORT_SELECT_OR_MIGRATE</code> n&#8217;est charg&eacute;. &Eacute;valuer un filtrage des paquets IPv4 entrants avec des options Record Route ou Timestamp. Surveiller les &eacute;ventuels crashs qui citent <code>ip_options_build</code>, <code>ip_build_and_send_pkt</code> ou <code>skb_under_panic</code>. Faire l&#8217;inventaire des &eacute;ventuels listeners MPTCP expos&eacute;s, en &eacute;vitant de les laisser atteignables sans raison. Si vous g&eacute;rez aussi des services contre les attaques applicatives plus courantes, j&#8217;ai d&eacute;crit la m&ecirc;me approche dans <a href="https://www.cisilino.com/fr/2026/10/29/php2shell-cve-2026-109618-mitigation-serveurs/">comment j&#8217;ai prot&eacute;g&eacute; mes serveurs en attendant le correctif pour PHP2Shell</a>. Att&eacute;nuer ce qui peut l&#8217;&ecirc;tre, en attendant le correctif d&eacute;finitif, sans promettre des protections qui n&#8217;existent pas.</p>



<p class="wp-block-paragraph">Pour ceux qui me demandent s&#8217;il faut mettre &agrave; jour tout de suite&nbsp;: si vous utilisez Debian stable, le kernel corrig&eacute; est d&eacute;j&agrave; dans les d&eacute;p&ocirc;ts de s&eacute;curit&eacute;. La mise &agrave; jour est simple, et la fen&ecirc;tre d&#8217;exposition est d&eacute;j&agrave; ferm&eacute;e. Si vous utilisez d&#8217;autres distributions, il n&#8217;y a pas encore de correctif &agrave; installer aujourd&#8217;hui. Cela vaut la peine de suivre de pr&egrave;s les avis de votre fournisseur dans les prochains jours&nbsp;: la situation &eacute;volue rapidement.</p>



<p class="wp-block-paragraph">Sources&nbsp;: <a href="https://thehackernews.com/2026/10/linux-kernel-tcp-flaw-with-98-cvss.html" target="_blank" rel="nofollow noopener">The Hacker News</a>, <a href="https://security-tracker.debian.org/tracker/CVE-2026-98432" target="_blank" rel="nofollow noopener">Debian Security Tracker</a> et le <a href="https://github.com/torvalds/linux/commit/e3f33b0a1d89d738e2b913dab519226eaf76e15b" target="_blank" rel="noopener">commit du correctif</a>. Debian, Red Hat, Ubuntu et les autres noms cit&eacute;s sont des marques de leurs propri&eacute;taires respectifs.</p><p>The post <a href="https://www.cisilino.com/fr/2026/10/31/vulnerabilite-kernel-linux-tcp-cve-2026-98432/">Vulnérabilité kernel Linux : un use-after-free dans le TCP IPv4</a> first appeared on <a href="https://www.cisilino.com/fr/">Matteo Cisilino</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.cisilino.com/fr/2026/10/31/vulnerabilite-kernel-linux-tcp-cve-2026-98432/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Journal email WordPress : pourquoi je le contrôle</title>
		<link>https://www.cisilino.com/fr/2026/10/31/journal-email-wordpress-pourquoi-je-controle/</link>
					<comments>https://www.cisilino.com/fr/2026/10/31/journal-email-wordpress-pourquoi-je-controle/#respond</comments>
		
		<dc:creator><![CDATA[matteocisilino]]></dc:creator>
		<pubDate>Sat, 31 Oct 2026 08:00:00 +0000</pubDate>
				<category><![CDATA[Serveurs et bases de données]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[FluentSMTP]]></category>
		<category><![CDATA[plugin WordPress]]></category>
		<category><![CDATA[SMTP]]></category>
		<guid isPermaLink="false">https://www.cisilino.com/?p=1383</guid>

					<description><![CDATA[<p>Je gère plusieurs sites WordPress : le journal email WordPress de FluentSMTP me dit si un envoi a vraiment réussi, sans fouiller les logs du serveur.</p>
<p>The post <a href="https://www.cisilino.com/fr/2026/10/31/journal-email-wordpress-pourquoi-je-controle/">Journal email WordPress : pourquoi je le contrôle</a> first appeared on <a href="https://www.cisilino.com/fr/">Matteo Cisilino</a>.</p>]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">Je gère plusieurs sites WordPress. Sur chacun partent des emails en nombre que personne n&rsquo;imagine&nbsp;: notifications de contact, réinitialisations de mot de passe, confirmations de commande, alertes aux gestionnaires. Le journal email WordPress de FluentSMTP est l&rsquo;outil que je consulte dès qu&rsquo;un client m&rsquo;écrit «&nbsp;je n&rsquo;ai rien reçu&nbsp;». Avant, je regardais les logs du serveur SMTP en ligne de commande. Je devais faire correspondre à la main des grep et des horodatages. Maintenant j&rsquo;ouvre une page dans le tableau de bord de WordPress et j&rsquo;ai tout sous les yeux.</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://www.cisilino.com/wp-content/uploads/2026/10/fluent-smtp-log-invii-email-wordpress.webp" alt="journal email WordPress vu dans le panneau de FluentSMTP" width="1200" height="630"/></figure>



<h2 class="wp-block-heading">Pourquoi je consulte le journal email WordPress avant les logs du serveur</h2>



<p class="wp-block-paragraph">Le cas typique est toujours le même. Un formulaire de contact qui «&nbsp;n&rsquo;arrive pas&nbsp;». Un client qui ne reçoit pas l&#8217;email de réinitialisation de mot de passe. Une commande qui reste sans confirmation. Sans un journal à portée de main, la première hypothèse est le dossier spam. Puis les logs du serveur SMTP. Puis peut-être le pare-feu. Avec FluentSMTP, je saute ces étapes. Je vois tout de suite si WordPress a vraiment tenté d&rsquo;envoyer cet email. À qui, quand, avec quelle réponse du serveur d&rsquo;envoi.</p>



<p class="wp-block-paragraph">FluentSMTP enregistre chaque appel à <code>wp_mail()</code>. Pas seulement les emails des plugins tiers, aussi ceux générés par le cœur de WordPress&nbsp;: notifications de nouvel utilisateur, rappels de mise à jour, alertes d&rsquo;erreur. Pour chaque envoi, le journal affiche l&rsquo;expéditeur, le destinataire, l&rsquo;objet, les en-têtes complets, le corps du message. Et la réponse du fournisseur SMTP ou de l&rsquo;API utilisée. Si un email a échoué, cette réponse du serveur est là. Je n&rsquo;ai pas à la deviner.</p>



<h2 class="wp-block-heading">Ce que je trouve vraiment dans le registre des envois</h2>



<p class="wp-block-paragraph">Le plugin prend en charge des dizaines de connecteurs&nbsp;: Amazon SES, SendGrid, Mailgun, Brevo, Postmark, SparkPost. Aussi Google Workspace et Microsoft 365 via OAuth, en plus du SMTP générique classique. Sur les sites que je gère, j&rsquo;utilise presque toujours du SMTP authentifié avec le domaine du client. Parfois une API dédiée, quand le volume d&#8217;emails augmente. Dans les deux cas, le journal email WordPress ne change pas. Chaque ligne a un statut, envoyé ou échoué. Il y a un bouton pour revoir le contenu ou renvoyer le message, sans que l&rsquo;utilisateur doive refaire l&rsquo;action qui l&rsquo;a généré.</p>



<p class="wp-block-paragraph">Le renvoi manuel est la fonction que j&rsquo;utilise le plus souvent. Un formulaire rempli deux fois parce qu&rsquo;il «&nbsp;n&rsquo;arrivait pas&nbsp;» devient un clic sur le journal. Pas un nouveau signalement au client. Pour les échecs répétés, j&rsquo;ai activé les notifications sur Telegram. Dès qu&rsquo;une connexion arrête de fonctionner, je le sais avant qu&rsquo;on me le signale. Plutôt que de le découvrir par un ticket de support.</p>



<p class="wp-block-paragraph">Le journal ne concerne pas seulement les notifications adressées à moi ou au client qui administre le site. Y finit aussi chaque email sortant généré par le site vers des tiers&nbsp;: la confirmation de commande qu&rsquo;une boutique en ligne envoie au client final, le reçu d&rsquo;un paiement, la notification d&rsquo;expédition. Si cette confirmation n&rsquo;arrive pas, je la vois dans le journal email WordPress exactement comme une notification interne, avec le même bouton pour la renvoyer au bon destinataire sans lui faire répéter l&rsquo;achat.</p>



<h2 class="wp-block-heading">Comment je configure FluentSMTP sur les sites que je gère</h2>



<p class="wp-block-paragraph">Après avoir connecté le bon connecteur, je change la conservation du journal. Par défaut elle reste active longtemps. Moi, je la porte à 30-60 jours, selon le trafic du site. Ça sert à retrouver un problème signalé en retard. Sans remplir la base de données de lignes que je ne consulterai jamais. J&rsquo;active ensuite au moins un canal de notification pour les échecs, Telegram ou Slack selon le client. Le journal seul n&rsquo;avertit personne&nbsp;: il faut l&rsquo;ouvrir pour être lu.</p>



<p class="wp-block-paragraph">Sur les sites avec formulaire de contact, j&rsquo;utilise aussi <a href="https://www.cisilino.com/fr/2026/10/29/plugin-securite-wordpress-cisilino/">Cisilino Site Defense Network</a> pour bloquer les bots. Moins de spam entrant signifie moins d&#8217;emails générés par les formulaires. Le journal reste plus lisible, avec moins de bruit à filtrer quand je cherche le bon message.</p>



<h2 class="wp-block-heading">Les identifiants SMTP ne restent pas en clair dans la base de données</h2>



<p class="wp-block-paragraph">Un détail que je vérifie toujours avant d&rsquo;enregistrer une connexion&nbsp;: où finissent les identifiants. FluentSMTP les chiffre par défaut avec les clés SALT de WordPress, celles déjà présentes dans <code>wp-config.php</code> pour la sécurité des sessions. On peut désactiver le chiffrement, mais le plugin lui-même signale que c&rsquo;est déconseillé. Sur les sites que je gère, je préfère une autre option&nbsp;: enregistrer le mot de passe API ou SMTP directement dans <code>wp-config.php</code>, hors de la base de données. Je définis les constantes avant que le plugin ne les lise. Ainsi, même un dump de la base de données ou un accès non autorisé au tableau de bord n&rsquo;expose pas la clé du fournisseur d&rsquo;envoi. C&rsquo;est le même principe que j&rsquo;applique ailleurs&nbsp;: moins de secrets dans la base de données, mieux c&rsquo;est.</p>



<h2 class="wp-block-heading">Plusieurs connexions en même temps, pas une seule à la fois</h2>



<p class="wp-block-paragraph">FluentSMTP permet de configurer plusieurs connexions en même temps, pas une seule à la fois. Sur un site, je règle celle par défaut et j&rsquo;en ajoute une seconde comme réserve&nbsp;: si le premier fournisseur ne répond pas, l&rsquo;envoi passe automatiquement à la connexion de réserve, sans que j&rsquo;aie besoin d&rsquo;intervenir. Le choix de la connexion dépend de l&rsquo;adresse de l&rsquo;expéditeur&nbsp;: chaque connexion a son «&nbsp;From&nbsp;», le reste passe par celle par défaut. La réserve n&rsquo;est prête que si la connexion par défaut échoue vraiment (une erreur du fournisseur, pas un email tombé en spam). C&rsquo;est une des raisons pour lesquelles je le préfère à un simple SMTP sans alternative. Si SendGrid ou Amazon SES ont un problème pendant quelques heures, le site continue quand même à envoyer, et je le vois tout de suite dans le journal email WordPress. Tout est inclus dans la version gratuite, sans version pro payante&nbsp;: on paie seulement le fournisseur d&rsquo;envoi choisi, pas le plugin.</p>



<h2 class="wp-block-heading">Un contrôle de santé chaque jour, pas seulement quand quelque chose casse</h2>



<p class="wp-block-paragraph">Au-delà du journal ligne par ligne, FluentSMTP fait un contrôle de santé de la connexion chaque jour, automatiquement. Si le fournisseur arrête de répondre, l&rsquo;alerte arrive avant qu&rsquo;un client ne m&rsquo;écrive «&nbsp;le site n&rsquo;envoie plus d&#8217;emails&nbsp;». Le même tableau de bord affiche un graphique avec les totaux journaliers d&rsquo;envois réussis et échoués. Utile pour comprendre en un coup d&rsquo;œil si une baisse est normale ou le symptôme de quelque chose qui se détériore, sans avoir à ouvrir le journal email WordPress ligne par ligne chaque fois. Il y a aussi un résumé périodique par email, avec les totaux de la semaine&nbsp;: ce n&rsquo;est pas une alerte d&rsquo;erreur, c&rsquo;est un bulletin que je lis en passant pour savoir si le volume d&rsquo;envois est dans la norme.</p>



<p class="wp-block-paragraph">Pour qui, comme moi, gère plusieurs sites en ligne de commande, FluentSMTP expose aussi des commandes WP-CLI&nbsp;: un test d&rsquo;envoi, un contrôle de santé de la connexion, les statistiques et le nettoyage des anciens journaux. Je les utilise dans les mêmes scripts qui tournent déjà sur les serveurs pour d&rsquo;autres tâches de maintenance, sans avoir à ouvrir le tableau de bord de chaque site un par un.</p>



<h2 class="wp-block-heading">Les limites honnêtes du journal email WordPress</h2>



<p class="wp-block-paragraph">Ce n&rsquo;est pas une solution magique. La conservation est basée sur les jours, pas sur un nombre maximal de lignes. Sur un site avec beaucoup de trafic transactionnel, la table du journal peut grossir vite. Il vaut mieux la surveiller, ou fixer une conservation plus courte. Les notifications d&rsquo;échec n&rsquo;arrivent que sur les canaux de chat configurés, pas par email. C&rsquo;est logique&nbsp;: un email qui avertit d&rsquo;un email en échec risque lui aussi d&rsquo;échouer. Mais il faut le savoir avant d&rsquo;y compter.</p>



<p class="wp-block-paragraph">Enfin, le journal enregistre ce qui s&rsquo;est passé côté WordPress et côté fournisseur. Il ne garantit pas la livraison dans la boîte du destinataire. Si un email est marqué comme envoyé mais finit en spam, c&rsquo;est un problème de réputation du domaine ou de configuration SPF/DKIM. Pas quelque chose qu&rsquo;un journal peut résoudre seul. Il reste malgré tout le premier endroit où je regarde, avant toute autre vérification.</p>



<p class="wp-block-paragraph">Le plugin est gratuit et open source. Page officielle sur <a href="https://wordpress.org/plugins/fluent-smtp/" target="_blank" rel="nofollow noopener">wordpress.org</a>, sans fonctions bloquées derrière une version pro. Pour qui gère même un seul site avec un formulaire de contact, ça vaut le coup de l&rsquo;installer juste pour le journal email WordPress. La première fois qu&rsquo;il résout un «&nbsp;je n&rsquo;ai pas reçu l&#8217;email&nbsp;» en une minute plutôt qu&rsquo;en une demi-heure, il est rentabilisé.</p><p>The post <a href="https://www.cisilino.com/fr/2026/10/31/journal-email-wordpress-pourquoi-je-controle/">Journal email WordPress : pourquoi je le contrôle</a> first appeared on <a href="https://www.cisilino.com/fr/">Matteo Cisilino</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.cisilino.com/fr/2026/10/31/journal-email-wordpress-pourquoi-je-controle/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Désactivation, désinstallation et données personnelles</title>
		<link>https://www.cisilino.com/fr/2026/10/30/desactivation-desinstallation-donnees-personnelles/</link>
					<comments>https://www.cisilino.com/fr/2026/10/30/desactivation-desinstallation-donnees-personnelles/#respond</comments>
		
		<dc:creator><![CDATA[matteocisilino]]></dc:creator>
		<pubDate>Fri, 30 Oct 2026 16:06:04 +0000</pubDate>
				<category><![CDATA[Manuel CSDN]]></category>
		<category><![CDATA[Cisilino Site Defense Network]]></category>
		<category><![CDATA[confidentialité]]></category>
		<category><![CDATA[manuel CSDN]]></category>
		<guid isPermaLink="false">https://www.cisilino.com/?p=1076</guid>

					<description><![CDATA[<p>Ce qui se passe quand tu désactives ou supprimes Cisilino Site Defense Network, quelles données restent et comment les citer dans la politique de confidentialité.</p>
<p>The post <a href="https://www.cisilino.com/fr/2026/10/30/desactivation-desinstallation-donnees-personnelles/">Désactivation, désinstallation et données personnelles</a> first appeared on <a href="https://www.cisilino.com/fr/">Matteo Cisilino</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>Avant de désinstaller le plugin CSDN, il convient de connaître la différence entre le désactiver et le supprimer, car les conséquences sont différentes. La désactivation éteint les règles et conserve les données. La désinstallation supprime les données du plugin de ton site. Tu trouveras aussi plus bas la liste des données personnelles traitées, à citer dans la politique de confidentialité.</p>
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" src="https://www.cisilino.com/wp-content/uploads/2026/10/manuale-csdn-disattivazione-disinstallazione.webp" alt="Schéma d'Extensions installées de WordPress pour désinstaller le plugin CSDN avec Désactiver et Supprimer" width="1200" height="630"/></figure>
<h2>Où se trouve</h2>
<p>Ouvre l&rsquo;entrée <strong>Extensions &gt; Extensions installées</strong> (point 1 de l&rsquo;image). Sur la ligne de <strong>Cisilino Site Defense Network</strong> (point 3), tu trouves le lien <strong>Désactiver</strong>. Après la désactivation (point 4), la même ligne montre <strong>Activer</strong> et <strong>Supprimer</strong>.</p>
<h2>Ce qui se passe à la désactivation</h2>
<p>Désactiver le plugin l&rsquo;arrête sans toucher aux données. À la désactivation, le plugin fait quatre choses.</p>
<ol>
<li>il enregistre l&rsquo;événement « Plugin désactivé sur ce site » et essaie de le livrer au panneau, s&rsquo;il est configuré.</li>
<li>il annule les trois tâches planifiées.</li>
<li>il vide les deux blocs de <code>.htaccess</code>, celui des IP bloquées et celui du durcissement.</li>
<li>il met à jour les règles de réécriture de WordPress.</li>
</ol>
<p><strong>Attention :</strong> une fois désactivé, aucune règle ne reste en vigueur. Les IP bloquées retrouvent l&rsquo;accès et le durcissement n&rsquo;est plus appliqué. Le plugin n&rsquo;est même plus chargé, donc les autres protections n&rsquo;agissent plus non plus. Les en-têtes de sécurité s&rsquo;arrêtent aussi, mais un navigateur qui a déjà reçu HSTS s&rsquo;en souvient pendant le temps réglé.</p>
<p>La base de données reste intacte. Si tu réactives le plugin, les blocs de <code>.htaccess</code> sont reconstruits et tu retrouves les réglages comme tu les avais laissés.</p>
<h2>Comment désinstaller le plugin</h2>
<p>Pour désinstaller le plugin, tu dois cliquer sur <strong>Supprimer</strong> dans <strong>Extensions installées</strong>, après l&rsquo;avoir désactivé. Avant de le faire, suis ces étapes.</p>
<ol>
<li>Dans l&rsquo;onglet <strong>Journal d&rsquo;activité</strong>, vérifie que la ligne « en attente d&rsquo;envoi au panneau » est à zéro, si tu utilises le panneau.</li>
<li>Dans l&rsquo;onglet <strong>Journal de débogage</strong>, télécharge les fichiers dont tu as besoin. Puis, si tu veux, clique sur <strong>Supprimer tous les fichiers</strong>.</li>
<li>Fais une sauvegarde, si tu ne l&rsquo;as pas déjà faite.</li>
<li>Désactive le plugin et clique sur <strong>Supprimer</strong>.</li>
</ol>
<h2>Ce qui est retiré et ce qui reste</h2>
<p>Quand tu choisis de désinstaller le plugin, il enregistre d&rsquo;abord « Plugin désinstallé de ce site : données locales retirées » et essaie de le livrer au panneau. Puis il supprime, quel que soit le résultat de la livraison.</p>
<p>Est retiré ce qui suit.</p>
<ul>
<li>les quatre tables <code>csdn_events</code>, <code>csdn_overrides</code>, <code>csdn_rate_hits</code> et <code>csdn_activity</code>.</li>
<li>presque toutes les options dont le nom commence par <code>csdn_</code>, y compris les identifiants du panneau, la liste blanche et les réglages des onglets. Il en reste trois, listées plus bas.</li>
<li>la donnée de suspension de la limitation de débit sur tous les utilisateurs.</li>
<li>les données temporaires du plugin.</li>
<li>les règles des deux blocs du plugin dans <code>.htaccess</code> et les règles de réécriture. Les marqueurs <code># BEGIN</code> et <code># END</code> restent dans le fichier, vides.</li>
</ul>
<p>Reste en revanche ce qui suit.</p>
<ul>
<li>les fichiers du journal de débogage dans le dossier <code>csdn-debug-*</code> à l&rsquo;intérieur de <code>uploads</code>, car ce sont tes propres données : supprime-les à la main ou avec le bouton <strong>Supprimer tous les fichiers</strong> avant de désinstaller.</li>
<li>l&rsquo;historique déjà livré au panneau, qui se trouve sur le panneau et non sur ton site.</li>
<li>les lignes de <code>.htaccess</code> qui se trouvent hors des marqueurs du plugin.</li>
<li>trois options mineures : <code>csdn_registration_lock</code> (la politique d&rsquo;Inscription des utilisateurs), <code>csdn_remote_ban_reasons</code> (motifs des blocages reçus) et <code>csdn_trigger_token</code> (jeton reçu du panneau). Restent aussi la donnée utilisateur <code>csdn_registration_blocked_at</code>, si présente, et les données temporaires <code>csdn_rl_block_*</code>, qui expirent seules. On peut les retirer à la main de la base de données.</li>
</ul>
<p><strong>Attention :</strong> désinstaller le plugin supprime aussi le journal d&rsquo;activité local. Les lignes pas encore livrées au panneau, si le panneau ne répond pas, sont perdues.</p>
<h2>Données personnelles traitées par le plugin</h2>
<p>Le plugin garde les données sur ton site, dans la base de données. Jamais le mot de passe. Voici ce qu&rsquo;il traite.</p>
<ul>
<li><strong>Échecs de connexion</strong> : adresse IP, nom d&rsquo;utilisateur essayé, nombre de tentatives, première et dernière occurrence, état de blocage. Il n&rsquo;y a pas de suppression automatique : ils restent dans la base de données jusqu&rsquo;à ce que tu désinstalles le plugin.</li>
<li><strong>Journal d&rsquo;activité</strong> : date et heure, utilisateur WordPress (id, identifiant, rôle), IP, type d&rsquo;action, objet concerné (pour les contenus, le titre) et une brève description. Dans certains cas, il ajoute des détails : pour un nouvel utilisateur l&#8217;email et les rôles, pour une modification de profil la valeur précédente et la nouvelle de l&#8217;email, de l&rsquo;identifiant, du nom affiché et du site web. Il n&rsquo;enregistre pas le contenu des articles, des commentaires ou des fichiers. Pour les options avec un nom suspect, comme des clés ou des jetons, il enregistre seulement qu&rsquo;elles ont changé.</li>
<li><strong>Limitation de débit</strong> : IP et type d&rsquo;envoi des invités, conservés un jour. Les suspensions des auteurs se trouvent dans les données de l&rsquo;utilisateur.</li>
<li><strong>Dérogations IP, liste blanche et liste noire reçue</strong>.</li>
<li><strong>Journal de débogage</strong>, si tu l&rsquo;actives : des fichiers qui peuvent contenir des chemins et des fragments de données.</li>
</ul>
<p>Le journal local garde par défaut 30 jours et au maximum 500 lignes. Tu peux changer les deux valeurs dans l&rsquo;onglet <strong>Journal d&rsquo;activité</strong>.</p>
<h3>Ce qui sort du site</h3>
<p>Seulement si tu connectes le panneau. Toutes les 15 minutes, le plugin envoie les échecs de connexion : IP, nom d&rsquo;utilisateur, résultat « failed » et date. Il en envoie jusqu&rsquo;à 200 par fois. Il ajoute le customer code et l&rsquo;URL du site. Il reçoit les IP bloquées. Le journal d&rsquo;activité, avec les détails ci-dessus, est envoyé en général immédiatement, en fin de requête, et ce qui reste en file d&rsquo;attente part avec le tour des 15 minutes. Il part seulement si le journal et l&rsquo;option « Envoyer les activités au panneau » sont actifs tous les deux. Les dérogations manuelles ne sont jamais envoyées.</p>
<h3>Que mettre dans la politique de confidentialité</h3>
<p>Tant que tu ne décides pas de désinstaller le plugin, indique dans la politique du site au moins ces points.</p>
<ul>
<li>que le site enregistre l&rsquo;IP et le nom d&rsquo;utilisateur des tentatives de connexion échouées, pour des raisons de sécurité.</li>
<li>qu&rsquo;il tient un journal des actions des utilisateurs, avec l&rsquo;IP, et pendant combien de jours il le conserve.</li>
<li>que, si tu as connecté le panneau, certaines de ces données sont envoyées au service externe.</li>
<li>qui est le responsable du traitement et comment les utilisateurs peuvent exercer leurs droits.</li>
</ul>
<p>Adapte le texte à ta situation, avec ton conseiller si tu en as un : le manuel ne remplace pas un avis juridique. Pour les bases sur les plugins, le <a href="https://wordpress.org/documentation/article/manage-plugins/" target="_blank" rel="noopener">guide officiel de WordPress</a> explique aussi la différence entre désactiver et supprimer.</p>
<h2>Si quelque chose ne va pas</h2>
<p>Si après la désactivation le site donne une erreur, vérifie <code>.htaccess</code> par FTP et regarde le chapitre <a href="https://www.cisilino.com/fr/?p=986">Résolution des problèmes et questions fréquentes</a>. Si tu as décidé de désinstaller le plugin par erreur, les données locales ne reviennent pas : il faut une sauvegarde du site.</p>
<p>Chapitre précédent : <a href="https://www.cisilino.com/fr/?p=986">Résolution des problèmes et questions fréquentes</a>. Retourne au sommaire avec l&rsquo;<a href="https://www.cisilino.com/fr/?p=972">introduction au manuel CSDN</a>.</p><p>The post <a href="https://www.cisilino.com/fr/2026/10/30/desactivation-desinstallation-donnees-personnelles/">Désactivation, désinstallation et données personnelles</a> first appeared on <a href="https://www.cisilino.com/fr/">Matteo Cisilino</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.cisilino.com/fr/2026/10/30/desactivation-desinstallation-donnees-personnelles/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Résolution des problèmes et questions fréquentes</title>
		<link>https://www.cisilino.com/fr/2026/10/30/resolution-problemes-questions-frequentes/</link>
					<comments>https://www.cisilino.com/fr/2026/10/30/resolution-problemes-questions-frequentes/#respond</comments>
		
		<dc:creator><![CDATA[matteocisilino]]></dc:creator>
		<pubDate>Fri, 30 Oct 2026 16:06:02 +0000</pubDate>
				<category><![CDATA[Manuel CSDN]]></category>
		<category><![CDATA[Cisilino Site Defense Network]]></category>
		<category><![CDATA[manuel CSDN]]></category>
		<category><![CDATA[questions fréquentes]]></category>
		<guid isPermaLink="false">https://www.cisilino.com/?p=1075</guid>

					<description><![CDATA[<p>Les solutions aux problèmes typiques de Cisilino Site Defense Network : blocages, erreurs 500, suspensions, panneau et journaux.</p>
<p>The post <a href="https://www.cisilino.com/fr/2026/10/30/resolution-problemes-questions-frequentes/">Résolution des problèmes et questions fréquentes</a> first appeared on <a href="https://www.cisilino.com/fr/">Matteo Cisilino</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>Cette page de résolution des problèmes réunit les situations où Cisilino Site Defense Network peut te mettre en difficulté. Pour chacune, tu trouves la solution. Elle te sert dans trois cas. Tu t&rsquo;es bloqué toi-même, le site répond avec une erreur 500, ou un utilisateur n&rsquo;arrive plus à publier. Les réponses sont organisées comme des questions fréquentes.</p>
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" src="https://www.cisilino.com/wp-content/uploads/2026/10/manuale-csdn-risoluzione-problemi.webp" alt="Liste de contrôle pour la résolution des problèmes du plugin CSDN, avec les étapes à suivre" width="1200" height="630"/></figure>
<h2>Résolution des problèmes : par où commencer</h2>
<p>Avant de chercher la réponse exacte, parcours cette liste de contrôle.</p>
<ol>
<li>Arrives-tu encore à ouvrir <code>wp-admin</code> ? Si oui, presque tout se résout depuis la page Réglages du plugin.</li>
<li>Lis les avertissements en haut. Le plugin explique le résultat des actions avec des messages dans des encadrés colorés.</li>
<li>Rappelle-toi la dernière chose que tu as changée : une règle de durcissement, une politique, une limite.</li>
<li>S&rsquo;il existe un bouton <strong>Vérifier maintenant</strong>, utilise-le avant de deviner au hasard.</li>
<li>Si tu n&rsquo;entres plus sur le site, prépare l&rsquo;accès FTP ou le gestionnaire de fichiers de l&rsquo;hébergeur.</li>
</ol>
<h2>Connexions et blocages</h2>
<h3>Je me suis bloqué moi-même : que faire ?</h3>
<p>Si tu as encore accès à WordPress, par exemple depuis ton téléphone avec le réseau mobile, ouvre l&rsquo;onglet <strong>IP bloquées</strong>. Cherche ton IP et clique sur <strong>Débloquer</strong>. Si ton IP n&rsquo;est pas dans la liste mais que tu es bloqué, le blocage peut venir de la liste de sécurité facultative. Va alors dans l&rsquo;onglet <strong>Général</strong>, section « Dérogations locales IP ». Saisis l&rsquo;IP, choisis « Débloquer toujours (unban) » et clique sur <strong>Enregistrer la dérogation</strong>. Puis, dans l&rsquo;onglet <strong>Général</strong>, clique sur <strong>Ajouter à la liste blanche</strong>.</p>
<p>Si tu es aussi bloqué depuis le site et que tu vois une erreur 403, entre par FTP. Ouvre ensuite <code>.htaccess</code>. Retire la ligne avec ton IP. Ou retire tout le bloc entre <code># BEGIN Cisilino Site Defense Network</code> et <code># END Cisilino Site Defense Network</code>.</p>
<p><strong>Attention :</strong> la modification à la main est temporaire. Le blocage sera réécrit par la même source au prochain événement. Cela peut être un échec de connexion, une synchronisation ou le tour des 15 minutes. Dès que tu es à l&rsquo;intérieur, utilise <strong>Débloquer</strong> et la liste blanche.</p>
<h3>Pourquoi la liste blanche ne m&rsquo;a pas débloqué ?</h3>
<p>La liste blanche évite seulement que les échecs de connexion soient comptés. Elle ne retire pas les blocages déjà présents. Pour retirer un blocage, il faut <strong>Débloquer</strong>, qui crée une dérogation permanente de déblocage sur ce site.</p>
<h3>Un utilisateur légitime a été bloqué</h3>
<p>Le compteur des tentatives est cumulatif par IP et ne se remet pas à zéro seul. Même des erreurs dispersées sur des semaines peuvent atteindre le seuil, qui est par défaut de 10. Débloque l&rsquo;IP et mets-la en liste blanche. Ou augmente le seuil dans <strong>Réglages distants</strong>, où le champ est « Seuil de blocage local (tentatives échouées) ».</p>
<h3>Le blocage d&rsquo;une IP ne finit jamais</h3>
<p>Un blocage local n&rsquo;expire pas. Un blocage manuel expire selon la durée choisie, de 1 heure à 7 jours. Si tu as choisi « Permanente (jusqu&rsquo;à suppression) », il n&rsquo;expire pas. Un blocage reçu du panneau disparaît quand le panneau le retire de la liste. Un déblocage à durée limitée, à son expiration, remet le blocage si la source d&rsquo;origine est encore là. Pour un déblocage définitif, utilise <strong>Débloquer</strong>, qui est permanent.</p>
<h3>Derrière un proxy ou un CDN, les blocages sont étranges</h3>
<p>Le plugin lit l&rsquo;IP seulement depuis <code>REMOTE_ADDR</code>. Il ignore l&rsquo;en-tête <code>X-Forwarded-For</code>, parce qu&rsquo;il peut être falsifié. Regarde la phrase « Ton IP actuelle est … » sous le champ <strong>Adresse IP</strong> de l&rsquo;onglet <strong>Général</strong>. Si ce n&rsquo;est pas ton IP publique, le plugin voit l&rsquo;adresse du proxy. Dans ce cas, évite de bloquer ou de mettre en liste blanche cette adresse. Attends d&rsquo;avoir clarifié la situation avec qui gère le proxy.</p>
<h2>Erreurs après les règles dans .htaccess</h2>
<p>Cette partie de la résolution des problèmes concerne les règles écrites dans le fichier du serveur.</p>
<h3>Le site donne une erreur 500 après avoir enregistré le durcissement</h3>
<p>Le plugin ne crée pas de copie de <code>.htaccess</code>. Il ne contrôle pas non plus la syntaxe après l&rsquo;écriture. Une erreur, ou une règle que le serveur n&rsquo;accepte pas, se voit immédiatement comme une erreur 500.</p>
<ol>
<li>Entre par FTP ou depuis le gestionnaire de fichiers.</li>
<li>Fais une copie de <code>.htaccess</code>.</li>
<li>Supprime le bloc entier. Il se trouve entre <code># BEGIN Cisilino Site Defense Network - Hardening</code> et <code># END Cisilino Site Defense Network - Hardening</code>.</li>
<li>Recharge le site, puis corrige les réglages dans l&rsquo;onglet <strong>Durcissement / IDS</strong>.</li>
</ol>
<p>Le bloc du durcissement n&rsquo;est réécrit que dans deux cas. C&rsquo;est quand tu enregistres l&rsquo;onglet ou quand tu réactives le plugin, jamais par le tour des 15 minutes. Ta modification à la main reste donc en place.</p>
<h3>J&rsquo;ai écrit un chemin personnalisé et tout le site donne 403</h3>
<p>Dans la case des chemins personnalisés, chaque ligne est un texte littéral. Il n&rsquo;y a pas de jokers. La règle bloque toute adresse qui contient cette chaîne. Écrire <code>/</code> ou <code>wp</code> bloque tout, y compris <code>wp-admin</code>. Retire par FTP le bloc du durcissement, comme ci-dessus. Puis, dans l&rsquo;onglet <strong>Durcissement / IDS</strong>, corrige ou vide la case « Chemins personnalisés à bloquer » et enregistre. Si tu ne la corriges pas, un nouvel enregistrement ou une réactivation du plugin réécrit la règle. Le site redonne alors 403.</p>
<h3>Le message « Réglages enregistrés, mais l&rsquo;écriture dans .htaccess a échoué » apparaît</h3>
<p>Le fichier <code>.htaccess</code> n&rsquo;est pas accessible en écriture. Vérifie les permissions. Les règles de ce bloc ne sont pas actives. Restent en revanche actifs les deux interrupteurs qui agissent en PHP, c&rsquo;est-à-dire XML-RPC et <code>?author=N</code>.</p>
<h3>Le test dit que le blocage PHP dans uploads ne fonctionne pas</h3>
<p>Dans l&rsquo;onglet <strong>Test</strong>, il y a l&rsquo;encadré « Vérification du blocage d&rsquo;exécution PHP dans uploads ». Il signale si le fichier de test a été exécuté. Vérifie que l&rsquo;hébergeur autorise <code>.htaccess</code> dans ce dossier et qu&rsquo;il n&rsquo;existe pas de bloc <code>&lt;Directory&gt;</code> plus spécifique. Sur nginx, les règles n&rsquo;ont aucun effet. La règle couvre seulement le dossier <code>uploads</code> standard.</p>
<h3>Un plugin ou le thème a arrêté de fonctionner</h3>
<p>Éteins la dernière règle que tu as activée et enregistre. Les cas les plus courants sont trois. Le blocage du PHP dans <code>uploads</code> casse les plugins qui y écrivent des fichiers PHP. La désactivation de XML-RPC arrête des applications et des fonctions distantes. Le blocage des téléversements exécutables rejette aussi des fichiers comme <code>.svg</code>.</p>
<h2>Utilisateurs, auteurs et visiteurs</h2>
<h3>Un auteur ne peut plus publier : « ton compte est suspendu »</h3>
<p>La limitation de débit s&rsquo;est déclenchée. Elle a vu trop de contenus créés en peu de temps. Par défaut la limite est de 150 contenus en 300 secondes, avec une suspension de 3600 secondes. Depuis l&rsquo;onglet <strong>Limitation de débit</strong>, dans le tableau des utilisateurs suspendus, clique sur <strong>Révoquer la suspension</strong>. Sinon, attends l&rsquo;expiration.</p>
<p>Éteindre « Limitation de débit active » ne retire pas une suspension déjà en cours. Avant une grande importation, augmente la limite N ou désactive le garde-fou.</p>
<h3>Un visiteur voit « Trop d&rsquo;envois »</h3>
<p>Un invité a envoyé trop de commentaires ou de formulaires en peu de temps. Par défaut, le seuil est de plus de 2 en 60 secondes, et le blocage dure 3600 secondes. Le blocage est par IP, donc il peut toucher plusieurs personnes dans le même bureau. Augmente la valeur N de la section visiteurs. Il n&rsquo;existe pas de liste d&rsquo;exceptions.</p>
<h3>Je n&rsquo;arrive pas à créer un utilisateur éditeur ou administrateur</h3>
<p>C&rsquo;est voulu. La politique par défaut d&rsquo;<strong>Inscription des utilisateurs</strong> est « Rôles à faible privilège uniquement ». Elle ne fait aucune exception, même pour toi. Passe temporairement à « Aucune restriction », crée l&rsquo;utilisateur, puis reviens en arrière. Avec « Aucune inscription (exclusive) », personne ne peut créer d&rsquo;utilisateurs. Vérifie aussi le rôle par défaut dans Réglages &gt; Général de WordPress. S&rsquo;il s&rsquo;agit d&rsquo;un rôle interdit, les inscriptions sont rejetées.</p>
<h2>Connexion au panneau</h2>
<h3>La connexion au panneau n&rsquo;apparaît pas</h3>
<p>L&rsquo;état se trouve dans un encadré précis. C&rsquo;est « État de la connexion au panneau : », en haut de l&rsquo;onglet <strong>Réglages distants</strong>. Si l&rsquo;encadré manque, les champs étaient incomplets : il faut Customer code, Clé API et URL du panneau. Après « Enregistrer et vérifier la connexion », aucune bannière séparée n&rsquo;apparaît.</p>
<ul>
<li>« URL du panneau non sécurisée : https requis … » : l&rsquo;adresse doit commencer par <code>https</code>. Le plugin refuse même d&rsquo;enregistrer une URL http.</li>
<li>« Authentification refusée par le panneau : customer_code ou clé API incorrects. » : revérifie les deux valeurs.</li>
<li>« Impossible d&rsquo;atteindre le panneau : … » : problème de réseau, de DNS ou de certificat.</li>
<li>« Réponse du panneau invalide (ce n&rsquo;est pas du JSON). » : l&rsquo;adresse ne pointe pas vers le bon endroit.</li>
</ul>
<p>Si le panneau ne répond pas, la protection locale continue. Les données en file d&rsquo;attente sont envoyées au tour suivant. Le plugin fonctionne aussi sans panneau.</p>
<h3>Les activités n&rsquo;arrivent pas au panneau</h3>
<p>Dans l&rsquo;onglet <strong>Journal d&rsquo;activité</strong>, regarde le tableau de diagnostic. Regarde aussi la ligne « en attente d&rsquo;envoi au panneau ». Clique sur <strong>Essayer d&rsquo;envoyer maintenant</strong> : le résultat apparaît dans le diagnostic. Le plafond de lignes, par défaut 500, supprime les plus anciennes même si elles n&rsquo;ont pas été livrées.</p>
<h2>Journal de débogage, intégrité et en-têtes</h2>
<h3>Le journal de débogage ne s&rsquo;active pas</h3>
<p>Tu as deux messages possibles. « le dossier des téléversements n&rsquo;est pas accessible en écriture » : corrige les permissions de <code>uploads</code>. « les fichiers de son dossier semblent accessibles depuis internet » : serveur probablement sans <code>.htaccess</code>, comme nginx. Bloque l&rsquo;accès au dossier <code>csdn-debug-*</code> dans la configuration du serveur et réessaie. Si le journal s&rsquo;est arrêté pour le plafond de 200 Mo, télécharge ou supprime les fichiers et réactive-le.</p>
<h3>L&rsquo;intégrité signale « les fichiers du plugin ne correspondent pas »</h3>
<p>Cela peut venir de deux cas. Si tu as modifié à la main un fichier du plugin, c&rsquo;est normal. Sinon, traite le site comme potentiellement compromis : réinstalle le plugin depuis une copie fiable et vérifie le reste. Si le message dit qu&rsquo;il n&rsquo;y a aucune référence, réactive le plugin pour prendre une nouvelle photographie.</p>
<h3>HSTS ne s&rsquo;active pas, ou ne s&rsquo;éteint pas</h3>
<p>Pour l&rsquo;activer, tu dois ouvrir les réglages du plugin en https. Sinon apparaît « HSTS N&rsquo;a PAS été activé ». Enregistre toujours depuis une page https. Décocher la case arrête l&rsquo;envoi de l&rsquo;en-tête, mais les navigateurs qui l&rsquo;ont déjà reçu s&rsquo;en souviennent longtemps.</p>
<h2>Si tu ne trouves pas la réponse</h2>
<p>Si la résolution des problèmes ne suffit pas, active le journal de débogage. Reproduis ensuite le problème et lis l&rsquo;entrée. Puis ouvre une discussion sur le <a href="https://wordpress.org/support/plugin/cisilino-site-defense-network/" target="_blank" rel="noopener">forum de support du plugin</a>. C&rsquo;est l&rsquo;endroit où recevoir de l&rsquo;aide et voir les problèmes déjà signalés. Ne colle pas de chemins du serveur ni de données sensibles.</p>
<p>Chapitre précédent : <a href="https://www.cisilino.com/fr/?p=985">Journal de débogage : les erreurs PHP dans un fichier dédié</a>. Chapitre suivant : <a href="https://www.cisilino.com/fr/?p=987">Désactivation, désinstallation et données personnelles</a>. Pour le sommaire : <a href="https://www.cisilino.com/fr/?p=972">manuel CSDN</a>.</p><p>The post <a href="https://www.cisilino.com/fr/2026/10/30/resolution-problemes-questions-frequentes/">Résolution des problèmes et questions fréquentes</a> first appeared on <a href="https://www.cisilino.com/fr/">Matteo Cisilino</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.cisilino.com/fr/2026/10/30/resolution-problemes-questions-frequentes/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Journal de débogage : les erreurs PHP dans un fichier dédié</title>
		<link>https://www.cisilino.com/fr/2026/10/30/journal-debogage-erreurs-php-fichier-dedie/</link>
					<comments>https://www.cisilino.com/fr/2026/10/30/journal-debogage-erreurs-php-fichier-dedie/#respond</comments>
		
		<dc:creator><![CDATA[matteocisilino]]></dc:creator>
		<pubDate>Fri, 30 Oct 2026 16:05:59 +0000</pubDate>
				<category><![CDATA[Manuel CSDN]]></category>
		<category><![CDATA[Cisilino Site Defense Network]]></category>
		<category><![CDATA[débogage]]></category>
		<category><![CDATA[erreurs PHP]]></category>
		<category><![CDATA[manuel CSDN]]></category>
		<guid isPermaLink="false">https://www.cisilino.com/?p=1072</guid>

					<description><![CDATA[<p>Comment activer le Journal de débogage du plugin CSDN depuis la version 1.0.15 : durée, taille des fichiers, rotation, téléchargement et limites.</p>
<p>The post <a href="https://www.cisilino.com/fr/2026/10/30/journal-debogage-erreurs-php-fichier-dedie/">Journal de débogage : les erreurs PHP dans un fichier dédié</a> first appeared on <a href="https://www.cisilino.com/fr/">Matteo Cisilino</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>Le journal de débogage WordPress est une nouveauté du plugin CSDN depuis la version 1.0.15. Il enregistre les erreurs PHP du site dans un fichier dédié, sans toucher à <code>wp-config.php</code>. Tu l&rsquo;actives depuis le back-office et il s&rsquo;éteint seul.</p>
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" src="https://www.cisilino.com/wp-content/uploads/2026/10/manuale-csdn-log-di-debug.webp" alt="Schéma de WordPress avec l'onglet Journal de débogage WordPress du plugin CSDN mis en évidence" width="1200" height="630"/></figure>
<h2>Où se trouve</h2>
<p>Va sur Réglages &gt; Cisilino Site Defense Network (point 1 de l&rsquo;image) et ouvre l&rsquo;onglet <strong>Journal de débogage</strong> (point 2). Les sections sont trois :</p>
<ul>
<li>point 3 : « Journal de débogage du site », avec état et activation.</li>
<li>point 4 : « Fichiers collectés ».</li>
<li>point 5 : « Dernières entrées ».</li>
</ul>
<h2>À quoi sert le journal de débogage WordPress</h2>
<p>Il te sera utile quand le site affiche une page blanche ou une erreur critique, quand quelque chose casse après une mise à jour, ou quand ton hébergeur ne te permet pas de modifier <code>wp-config.php</code> ni de lire les journaux. Les constantes <code>WP_DEBUG</code> et <code>WP_DEBUG_LOG</code> se définissent avant le chargement des plugins, donc un plugin ne peut pas les activer. Ce journal utilise un gestionnaire d&rsquo;erreurs PHP rattaché au chargement du plugin.</p>
<p>Ce journal s&rsquo;ajoute, il ne remplace rien. Les erreurs continuent d&rsquo;arriver là où elles arrivaient avant, c&rsquo;est-à-dire dans <code>debug.log</code> et dans le journal du serveur. Il n&rsquo;envoie rien au panneau.</p>
<h2>Comment procéder</h2>
<ol>
<li>Ouvre l&rsquo;onglet <strong>Journal de débogage</strong>.</li>
<li>Choisis <strong>Reste activé pendant</strong> : <strong>1 heure</strong>, <strong>24 heures</strong> (par défaut) ou <strong>7 jours</strong>.</li>
<li>Choisis <strong>Taille maximale par fichier</strong>.</li>
<li>Clique sur <strong>Activer le journal de débogage</strong>. Lis « Journal de débogage activé. Il s&rsquo;éteint seul à l&rsquo;expiration du délai choisi ; les fichiers restent. ».</li>
<li>Reproduis le problème sur le site.</li>
<li>Retourne à l&rsquo;onglet. Lis « Dernières entrées » ou télécharge le fichier depuis la section « Fichiers collectés ».</li>
<li>Quand tu as terminé, clique sur <strong>Éteindre le journal de débogage</strong>, ou attends l&rsquo;expiration. Tu verras « Journal de débogage éteint. Les fichiers collectés sont encore ici dessous. ».</li>
</ol>
<p>Le « État : » te dit si le journal est « activé, s&rsquo;éteint le jj/mm/aaaa hh:mm », « éteint (expiré le …) » ou « éteint ». Avec le journal activé, tu peux changer la taille avec <strong>Enregistrer la taille</strong>.</p>
<h3>Fichiers collectés</h3>
<p>Le tableau liste le nom, la taille et les boutons <strong>Télécharger</strong> et <strong>Supprimer</strong>. En dessous se trouve <strong>Supprimer tous les fichiers</strong>. Avant de supprimer, le plugin demande une confirmation : « Supprimer ce fichier ? L&rsquo;opération ne peut pas être annulée. ». Pour <strong>Supprimer tous les fichiers</strong>, le texte est « Supprimer tous les fichiers du journal de débogage ? L&rsquo;opération ne peut pas être annulée. ». S&rsquo;il n&rsquo;y a rien, tu lis « Aucun fichier : le journal n&rsquo;a jamais été activé ou n&rsquo;a encore rien enregistré. ».</p>
<h3>Dernières entrées</h3>
<p>L&rsquo;encadré montre les 200 entrées les plus récentes, de la plus nouvelle à la plus ancienne. Le menu <strong>Tous les niveaux</strong> te permet de filtrer par Fatal error, Parse error, Recoverable error, Warning, Notice ou Deprecated. Puis clique sur <strong>Filtrer</strong>. Pour tout le reste, télécharge les fichiers. Si le filtre ne trouve rien, tu lis « Aucune entrée avec ce filtre. ».</p>
<p>Une entrée a cette forme :</p>
<p><code>[2026-10-29 10:15:03 UTC] Warning: message dans /chemin/fichier.php:12 | GET /page</code></p>
<ul>
<li>L&rsquo;heure est en UTC, différente de l&rsquo;heure du site que tu vois dans le <a href="https://www.cisilino.com/fr/?p=984">Journal d&rsquo;activité</a>.</li>
<li>Après la barre verticale, tu trouves la méthode et le chemin de la requête, sans la chaîne de requête. Depuis la ligne de commande ou un cron, tu vois « cli/cron ».</li>
<li>Un message sur plusieurs lignes, comme une pile d&rsquo;appels, reste une seule entrée avec les lignes suivantes indentées.</li>
<li>Les lignes « Info : journal de débogage activé (utilisateur N) » et « Info : journal de débogage désactivé (utilisateur N) » n&rsquo;ont pas de niveau : avec un filtre, elles n&rsquo;apparaissent pas.</li>
</ul>
<h2>Valeurs par défaut et limites</h2>
<ul>
<li>Durée du journal de débogage WordPress : 1 heure, 24 heures ou 7 jours. Une autre valeur devient 24 heures.</li>
<li>Taille par fichier : 1, 5, 10, 25 ou 50 Mo. Le défaut est 5 Mo. La taille choisie s&rsquo;enregistre quand tu cliques sur <strong>Activer le journal de débogage</strong> ou <strong>Enregistrer la taille</strong>. Attention : <strong>Éteindre le journal de débogage</strong> remet la taille à 5 Mo, parce que ce module ne contient pas le menu de taille.</li>
<li>Plafond global : 200 Mo, en additionnant les fichiers <code>.log</code> et <code>.zip</code>.</li>
<li>Chaque message est tronqué à 4000 caractères.</li>
<li>Il n&rsquo;enregistre que les erreurs PHP : pas les requêtes lentes, les erreurs JavaScript ni les requêtes HTTP.</li>
</ul>
<h2>Exemples</h2>
<ul>
<li>Erreur critique après la mise à jour d&rsquo;un plugin : active pour 1 heure, recharge la page, filtre « Fatal error ». L&rsquo;entrée indique le fichier et la ligne, par exemple <code>/…/plugins/xyz/fichier.php:210 | GET /boutique/</code>.</li>
<li>Avertissements sporadiques : 24 heures, filtre Warning ou Deprecated. Si le fichier a été tourné, télécharge le zip.</li>
<li>Site lent sans cause claire : 7 jours avec des fichiers de 25 Mo, puis cherche les Notice et Warning qui se répètent.</li>
</ul>
<p>Garde-le activé le minimum nécessaire : souvent 1 heure suffit.</p>
<p><strong>Attention :</strong> les fichiers du journal de débogage contiennent des chemins du serveur et des fragments de données. Ne les partage pas en public. Ils restent sur le disque même après l&rsquo;extinction et après la désinstallation du plugin, qui supprime les options mais pas les fichiers. Supprime-les toi-même quand tu as fini. Le plafond global est de 200 Mo.</p>
<p><strong>Attention :</strong> sur un serveur nginx, l&rsquo;activation peut être refusée jusqu&rsquo;à ce que le serveur bloque le dossier <code>csdn-debug-*</code>. Le message est « Journal de débogage non activé : les fichiers de son dossier semblent accessibles depuis internet (serveur probablement sans support de .htaccess, comme nginx). Les journaux peuvent contenir des chemins et des données : bloque l&rsquo;accès au dossier csdn-debug-* dans la configuration du serveur et réessaie. ». Si tu ne gères pas le serveur, demande à qui le gère.</p>
<p><strong>Attention :</strong> le journal ne voit pas les erreurs supprimées avec <code>@</code> ni celles générées avant le chargement du plugin. Par exemple, il ne voit pas les erreurs de <code>wp-config.php</code>. Le journal de débogage WordPress du plugin ne remplace pas les journaux du serveur.</p>
<h2>Ce qui se passe en coulisses</h2>
<p>Le journal de débogage WordPress enregistre les fichiers dans un dossier <code>wp-content/uploads/csdn-debug-</code> suivi de 16 caractères aléatoires. Dedans se trouvent un <code>index.php</code>, un <code>.htaccess</code> qui refuse l&rsquo;accès et le fichier en cours d&rsquo;utilisation <code>csdn-debug.log</code>. À l&rsquo;activation, le plugin écrit un fichier de test et essaie de le lire par HTTP. S&rsquo;il répond, il refuse d&rsquo;activer le journal.</p>
<p>Quand le fichier en cours d&rsquo;utilisation dépasse la taille choisie, il est fermé, compressé en <code>.zip</code> et un nouveau démarre. Aucune entrée n&rsquo;est perdue. Le <code>.log</code> original n&rsquo;est supprimé qu&rsquo;après vérification du zip. Si la compression échoue, le <code>.log</code> reste. Les entrées de « Dernières entrées » sont lues seulement depuis le fichier en cours d&rsquo;utilisation, donc après une rotation les anciennes se trouvent dans les zip.</p>
<p>Avant de faire tourner les fichiers, le plugin contrôle le plafond de 200 Mo. S&rsquo;il est atteint, le journal s&rsquo;arrête pour ne rien écraser. L&rsquo;avertissement jaune apparaît : « Le journal s&rsquo;est arrêté car les fichiers ont atteint le plafond d&rsquo;espace (200 Mo) : pour ne pas écraser les données, il n&rsquo;écrit plus. Télécharge ou supprime les fichiers, puis réactive-le. ». Pour repartir, supprime les fichiers et réactive.</p>
<p>À l&rsquo;expiration, le journal s&rsquo;éteint seul, mais les fichiers restent. Le plugin ne les tronque ni ne les supprime jamais : seul toi le fais, avec <strong>Supprimer</strong> ou <strong>Supprimer tous les fichiers</strong>. Pour les erreurs fatales, l&rsquo;entrée est écrite en fin de requête.</p>
<h2>Si le journal de débogage WordPress ne fonctionne pas</h2>
<ul>
<li>« Journal de débogage non activé : le dossier des téléversements n&rsquo;est pas accessible en écriture. » : vérifie les permissions du dossier <code>wp-content/uploads</code>.</li>
<li>Le journal n&rsquo;écrit pas : si l&rsquo;écriture échoue, le plugin le signale avec une entrée « Journal de débogage du site : … » dans les « Dernières tentatives » de l&rsquo;onglet <a href="https://www.cisilino.com/fr/?p=984">Journal d&rsquo;activité</a>.</li>
<li>Le journal est arrêté pour le plafond : télécharge ce qui te sert, supprime les fichiers et réactive.</li>
</ul>
<p>Le <a href="https://www.cisilino.com/fr/?p=972">guide général du manuel</a> explique où se situe cet onglet. Pour mieux comprendre les constantes de WordPress, regarde le <a href="https://developer.wordpress.org/advanced-administration/debug/debug-wordpress/" target="_blank" rel="noopener">guide officiel de débogage de WordPress</a> : il explique <code>WP_DEBUG</code> et <code>WP_DEBUG_LOG</code>, que ce plugin ne peut pas remplacer.</p>
<p>Chapitre précédent : <a href="https://www.cisilino.com/fr/?p=984">Journal d&rsquo;activité</a>. Chapitre suivant : <a href="https://www.cisilino.com/fr/?p=986">Résolution des problèmes et questions fréquentes</a>.</p><p>The post <a href="https://www.cisilino.com/fr/2026/10/30/journal-debogage-erreurs-php-fichier-dedie/">Journal de débogage : les erreurs PHP dans un fichier dédié</a> first appeared on <a href="https://www.cisilino.com/fr/">Matteo Cisilino</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.cisilino.com/fr/2026/10/30/journal-debogage-erreurs-php-fichier-dedie/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Journal d&#8217;activité : ce qui s&#8217;est passé sur le site</title>
		<link>https://www.cisilino.com/fr/2026/10/30/journal-d-activite-qui-s-est-passe-site/</link>
					<comments>https://www.cisilino.com/fr/2026/10/30/journal-d-activite-qui-s-est-passe-site/#respond</comments>
		
		<dc:creator><![CDATA[matteocisilino]]></dc:creator>
		<pubDate>Fri, 30 Oct 2026 16:05:53 +0000</pubDate>
				<category><![CDATA[Manuel CSDN]]></category>
		<category><![CDATA[audit log]]></category>
		<category><![CDATA[Cisilino Site Defense Network]]></category>
		<category><![CDATA[journal d'activité]]></category>
		<category><![CDATA[manuel CSDN]]></category>
		<guid isPermaLink="false">https://www.cisilino.com/?p=1071</guid>

					<description><![CDATA[<p>Comment utiliser l'onglet Journal d'activité du plugin CSDN : groupes d'événements, filtres, rétention, plafond de lignes, envoi au panneau et vidage.</p>
<p>The post <a href="https://www.cisilino.com/fr/2026/10/30/journal-d-activite-qui-s-est-passe-site/">Journal d’activité : ce qui s’est passé sur le site</a> first appeared on <a href="https://www.cisilino.com/fr/">Matteo Cisilino</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>Le journal d&rsquo;activité WordPress du plugin CSDN est un carnet local de qui a fait quoi et quand sur ton site. Il enregistre les connexions, les utilisateurs, les contenus, les plugins, les thèmes et plus encore. Il sert à reconstruire ce qui s&rsquo;est passé.</p>
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" src="https://www.cisilino.com/wp-content/uploads/2026/10/manuale-csdn-registro-attivita.webp" alt="Schéma de WordPress avec l'onglet Journal d'activité WordPress du plugin CSDN mis en évidence" width="1200" height="630"/></figure>
<h2>Où se trouve</h2>
<p>Dans le back-office, va sur Réglages &gt; Cisilino Site Defense Network (point 1 de l&rsquo;image). Ouvre l&rsquo;onglet <strong>Journal d&rsquo;activité</strong> (point 2). De haut en bas, tu trouves ces sections :</p>
<ul>
<li>point 3 : « Réglages du journal d&rsquo;activité ».</li>
<li>point 4 : la ligne d&rsquo;état au-dessus du formulaire, avec les compteurs de lignes.</li>
<li>point 5 : « Diagnostic d&rsquo;envoi au panneau ».</li>
<li>point 6 : « Activités enregistrées », le tableau avec les filtres.</li>
<li>point 7 : « Vider le journal local ».</li>
</ul>
<h2>À quoi sert le journal d&rsquo;activité WordPress</h2>
<p>Il t&rsquo;aide à répondre à des questions comme « qui a désactivé ce plugin ? » ou « depuis quelle IP cet utilisateur s&rsquo;est-il connecté ? ». Chaque événement est une ligne dans le tableau de la base de données du site.</p>
<p>Ne le confonds pas avec le compteur des échecs de connexion par IP, qui sert à décider les blocages. Ce sont deux données séparées, avec des règles de conservation différentes. La tentative de connexion échouée, elle, apparaît aussi ici, une ligne par tentative.</p>
<p>Pour l&rsquo;historique long et pour les recherches sérieuses, le panneau est préférable. Le journal local fonctionne aussi sans panneau. La connexion se configure dans <a href="https://www.cisilino.com/fr/?p=974">Réglages distants</a>.</p>
<h2>Comment procéder</h2>
<ol>
<li>Ouvre l&rsquo;onglet et regarde la ligne « Lignes dans le journal local : N — en attente d&rsquo;envoi au panneau : M ».</li>
<li>Dans le formulaire, choisis les réglages décrits ci-dessous.</li>
<li>Clique sur <strong>Enregistrer les réglages du journal</strong>. Tu lis « Réglages du journal d&rsquo;activité enregistrés. ».</li>
<li>Pour lire les événements, va sur « Activités enregistrées ». Choisis un groupe dans le menu <strong>Tous les groupes</strong>, ou écris dans le champ <strong>Utilisateur, objet ou IP</strong>, puis clique sur <strong>Filtrer</strong>.</li>
</ol>
<h3>Les réglages du formulaire</h3>
<ul>
<li>« Enregistrer les activités sur ce site » : si tu l&rsquo;éteins, aucune nouvelle ligne n&rsquo;est écrite. Les anciennes restent.</li>
<li>« Rétention locale (jours) » : de 0 à 3650. Avec 0, rien n&rsquo;est supprimé pour ancienneté.</li>
<li>« Plafond de lignes conservées » : de 0 à 1 000 000. Avec 0, il n&rsquo;y a pas de plafond.</li>
<li>« Envoyer les activités au panneau » : nécessite la connexion dans Réglages distants.</li>
<li>« Livraison immédiate » : l&rsquo;envoi part en fin de requête, sans faire attendre le visiteur. Si tu l&rsquo;éteins, l&rsquo;envoi n&rsquo;a lieu qu&rsquo;avec la synchronisation toutes les 15 minutes.</li>
<li>« Que faut-il enregistrer » : une case pour chacun des 18 groupes d&rsquo;événements.</li>
</ul>
<h3>Les groupes d&rsquo;événements</h3>
<p>Les groupes ont ces libellés, identiques dans les cases de « Que faut-il enregistrer » et dans le menu <strong>Tous les groupes</strong> : Connexions (connexion, déconnexion, tentatives échouées) ; Utilisateurs (création, modification de profil, rôles, suppression) ; Contenus (articles, pages, types de contenu personnalisés) ; Catégories et étiquettes ; Commentaires ; Médias (pièces jointes) ; Plugins (activation, désactivation, installation, mise à jour) ; Thèmes (changement de thème, mise à jour, personnalisation) ; Mises à jour de WordPress ; Réglages de WordPress ; Menus de navigation ; Widgets ; Éditeur de fichiers de thèmes/plugins depuis wp-admin ; Export de contenus ; Téléversements de fichiers (y compris ceux hors de la bibliothèque de médias) ; Intégrité des fichiers du plugin ; Réglages des plugins (y compris ceux de ce plugin) ; Cycle de vie du plugin (désactivation, désinstallation, vidage du journal).</p>
<p>Pour les réglages de WordPress, seule une sélection d&rsquo;options principales est enregistrée, par exemple <code>blogname</code>, <code>siteurl</code>, <code>admin_email</code>, <code>default_role</code> et <code>active_plugins</code>. Pour les autres plugins, seuls les réglages déclarés avec <code>register_setting()</code> ou enregistrés depuis <code>options.php</code> sont visibles. L&rsquo;éditeur de fichiers enregistre la tentative, pas le résultat.</p>
<h3>Comment lire le tableau</h3>
<p>Les colonnes sont Quand, Utilisateur, IP, Groupe, Action, Détail et Envoyé. Les lignes sont au nombre de 50 par page, les plus récentes d&rsquo;abord. Utilise <strong>Précédentes</strong> et <strong>Suivantes</strong> pour te déplacer. S&rsquo;il n&rsquo;y a rien, tu lis « Aucune activité enregistrée (avec ces filtres). ».</p>
<p>Groupe et Action apparaissent avec le nom brut, par exemple <code>plugins</code> et <code>deactivated</code>. Qui n&rsquo;est pas authentifié apparaît comme « (non authentifié) ». Dans la colonne Envoyé, tu trouves la date de confirmation du panneau, ou « — » si la ligne est encore en file d&rsquo;attente. Le champ des détails techniques n&rsquo;est pas visible ici : il se lit sur le panneau.</p>
<p>Un exemple de ligne : 12/10/2026 09:14:02, utilisateur mario (administrator), IP <code>203.0.113.5</code>, groupe <code>plugins</code>, action <code>deactivated</code>.</p>
<h3>Exemples de lecture</h3>
<ul>
<li>Groupe « Connexions (connexion, déconnexion, tentatives échouées) » et une IP suspecte : une série de <code>failed</code> suivie d&rsquo;un <code>success</code> peut signifier que quelqu&rsquo;un a deviné le mot de passe.</li>
<li>Une ligne <code>users</code> avec l&rsquo;action <code>role_changed</code> et un utilisateur inattendu : vérifie s&rsquo;il s&rsquo;agit d&rsquo;une escalade de privilèges.</li>
<li>Une ligne du groupe Téléversements avec un avertissement de blocage : quelqu&rsquo;un a essayé de charger un fichier dangereux.</li>
</ul>
<h2>Valeurs par défaut du journal d&rsquo;activité WordPress</h2>
<ul>
<li>Journal activé, envoi au panneau activé, livraison immédiate activée, tous les groupes actifs.</li>
<li>Rétention : 30 jours. La suppression par ancienneté a lieu une fois par jour.</li>
<li>Plafond de lignes : 500. Le contrôle se déclenche tous les 100 ajouts, donc le tableau peut le dépasser d&rsquo;environ 100 lignes.</li>
<li>Si tu enregistres sans cocher aucun groupe, le journal reste actif mais n&rsquo;écrit rien.</li>
<li>Il n&rsquo;enregistre pas les visites normales et n&rsquo;exporte pas les données.</li>
</ul>
<p><strong>Attention :</strong> un échec de connexion enregistre le nom d&rsquo;utilisateur saisi. Si quelqu&rsquo;un écrit le mot de passe dans le champ nom d&rsquo;utilisateur, ce texte reste dans le journal, qui peut partir vers le panneau. Le plugin ne le filtre pas. Garde cela en tête quand tu partages ou consultes le journal.</p>
<p><strong>Attention :</strong> le plafond de lignes (500 par défaut) supprime les lignes les plus anciennes même si elles n&rsquo;ont pas encore été envoyées au panneau. Le plafond a priorité sur la garantie de livraison. Sur les sites avec beaucoup de trafic non authentifié (échecs de connexion, commentaires, envois de fichiers), 500 lignes peuvent s&rsquo;épuiser rapidement. Si tu as besoin de l&rsquo;historique complet, augmente le plafond, mais sache qu&rsquo;avec 0 tu retires la limite d&rsquo;espace disque.</p>
<p><strong>Attention :</strong> « Vider le journal d&rsquo;activité » est irréversible en local. Une confirmation est demandée au préalable : « Vider tout le journal d&rsquo;activité local ? L&rsquo;opération n&rsquo;est pas réversible. ».</p>
<h2>Ce qui n&rsquo;est pas enregistré</h2>
<p>Les mots de passe en clair ne sont jamais enregistrés. À la modification d&rsquo;un profil, seule l&rsquo;indication que le mot de passe a changé est enregistrée. Le champ « Clé API » du plugin est affiché comme <code>***</code>. Les options d&rsquo;autres plugins dont le nom contient des mots comme key, secret, token, password, auth, salt, nonce, license ou credential ont leur valeur remplacée par « *** (valeur non enregistrée) ». Les valeurs des options sont tronquées à 200 caractères.</p>
<h2>Diagnostic de l&rsquo;envoi au panneau</h2>
<p>La section au point 5 sert quand les activités n&rsquo;arrivent pas au panneau. Un envoi qui échoue ne donne aucune erreur visible : les lignes restent en file d&rsquo;attente et réessaient. Le seul symptôme est le compteur « en attente » qui ne descend pas.</p>
<p>Le tableau montre, parmi d&rsquo;autres informations, « Connexion au panneau », « Journal d&rsquo;activité », « Envoi au panneau », « Livraison immédiate », « Lignes en file d&rsquo;attente », « Destination de error_log() » et « Dernière tentative d&rsquo;envoi ». Les valeurs problématiques sont en rouge. Si la dernière tentative montre moins de lignes acceptées qu&rsquo;envoyées, « Lignes rejetées par le panneau » apparaît : ces lignes ne seront pas réessayées.</p>
<p>Il y a trois boutons :</p>
<ul>
<li><strong>Essayer d&rsquo;envoyer maintenant</strong> : fait un envoi de test immédiatement. Le résultat se trouve dans le tableau.</li>
<li><strong>Activer le journal détaillé</strong> (puis <strong>Désactiver le journal détaillé</strong>) : enregistre aussi les envois réussis.</li>
<li><strong>Vider le journal de diagnostic</strong> : efface seulement la liste « Dernières tentatives », qui garde au maximum 25 entrées. Elle apparaît seulement s&rsquo;il y a des entrées.</li>
</ul>
<h2>Ce qui se passe en coulisses</h2>
<p>En fin de requête, le plugin ferme la réponse au visiteur, quand le serveur le permet, et envoie les lignes au panneau en lots de 200 maximum, des plus anciennes aux plus récentes. Une ligne compte comme livrée seulement quand le panneau confirme sa réception. Une synchronisation toutes les 15 minutes fait office de filet de sécurité.</p>
<p>La rétention par ancienneté supprime les lignes anciennes une fois par jour. Si l&rsquo;envoi est actif et le panneau configuré, elle ne supprime que celles déjà confirmées. Sinon, elle supprime seulement par ancienneté.</p>
<p>Le vidage essaie d&rsquo;abord d&rsquo;envoyer l&rsquo;arriéré, puis supprime tout. Il enregistre l&rsquo;événement de vidage, qui devient la première ligne du nouveau journal. Il n&rsquo;envoie aucune commande de suppression au panneau : l&rsquo;historique déjà envoyé y reste. Après le vidage, tu lis « Journal d&rsquo;activité local vidé. L&rsquo;historique déjà envoyé au panneau n&rsquo;a pas été touché. ». S&rsquo;il y avait des lignes jamais livrées, un avertissement en gras t&rsquo;indique combien ont été perdues.</p>
<h2>Si le journal d&rsquo;activité WordPress n&rsquo;envoie pas</h2>
<ul>
<li>Le compteur « en attente » ne descend pas : ouvre le diagnostic, regarde la dernière tentative et le code HTTP, puis clique sur « Essayer d&rsquo;envoyer maintenant ».</li>
<li>Encadré jaune sur le panneau qui ne confirme pas : le panneau n&rsquo;est peut-être pas à jour. Les lignes restent en file d&rsquo;attente et rien n&rsquo;est perdu.</li>
<li>Connexion « NON configurée » : sans customer code, clé API et URL, rien n&rsquo;est envoyé. Retourne à <a href="https://www.cisilino.com/fr/?p=974">Réglages distants</a>.</li>
</ul>
<p>Pour un guide plus large sur les bonnes pratiques de journalisation, lis le <a href="https://cheatsheetseries.owasp.org/cheatsheets/Logging_Cheat_Sheet.html" target="_blank" rel="noopener">guide OWASP sur la journalisation</a> : il explique ce qu&rsquo;il vaut mieux enregistrer et ce qu&rsquo;il faut éviter.</p>
<p>Retourne au <a href="https://www.cisilino.com/fr/?p=972">chapitre 1, le sommaire du manuel</a>. Chapitre précédent : <a href="https://www.cisilino.com/fr/?p=983">Limitation de débit</a>. Chapitre suivant : <a href="https://www.cisilino.com/fr/?p=985">Journal de débogage</a>.</p><p>The post <a href="https://www.cisilino.com/fr/2026/10/30/journal-d-activite-qui-s-est-passe-site/">Journal d’activité : ce qui s’est passé sur le site</a> first appeared on <a href="https://www.cisilino.com/fr/">Matteo Cisilino</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.cisilino.com/fr/2026/10/30/journal-d-activite-qui-s-est-passe-site/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Limitation de débit : limites pour auteurs et visiteurs</title>
		<link>https://www.cisilino.com/fr/2026/10/30/limitation-debit-limites-auteurs-visiteurs/</link>
					<comments>https://www.cisilino.com/fr/2026/10/30/limitation-debit-limites-auteurs-visiteurs/#respond</comments>
		
		<dc:creator><![CDATA[matteocisilino]]></dc:creator>
		<pubDate>Fri, 30 Oct 2026 16:05:51 +0000</pubDate>
				<category><![CDATA[Manuel CSDN]]></category>
		<category><![CDATA[Cisilino Site Defense Network]]></category>
		<category><![CDATA[limitation de débit]]></category>
		<category><![CDATA[manuel CSDN]]></category>
		<category><![CDATA[suspension d'utilisateurs]]></category>
		<guid isPermaLink="false">https://www.cisilino.com/?p=1070</guid>

					<description><![CDATA[<p>Comment utiliser l'onglet Limitation de débit du plugin CSDN : limites pour auteurs et visiteurs, valeurs par défaut, suspensions et révocation.</p>
<p>The post <a href="https://www.cisilino.com/fr/2026/10/30/limitation-debit-limites-auteurs-visiteurs/">Limitation de débit : limites pour auteurs et visiteurs</a> first appeared on <a href="https://www.cisilino.com/fr/">Matteo Cisilino</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>La limitation de débit WordPress proposée par CSDN met des garde-fous aux abus d&rsquo;écriture. D&rsquo;un côté il y a les auteurs qui publient trop de contenus en peu de temps, par exemple avec un compte compromis. De l&rsquo;autre il y a les visiteurs qui envoient trop de commentaires ou de formulaires de contact. Chaque garde-fou s&rsquo;active et se règle séparément.</p>
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" src="https://www.cisilino.com/wp-content/uploads/2026/10/manuale-csdn-rate-limiting.webp" alt="Schéma de WordPress avec l'onglet Limitation de débit WordPress du plugin CSDN mis en évidence" width="1200" height="630"/></figure>
<h2>Où se trouve</h2>
<p>Va sur <strong>Réglages</strong> et choisis <strong>Cisilino Site Defense Network</strong> (point 1 de l&rsquo;image). Ouvre l&rsquo;onglet « Limitation de débit » (point 2). Pour enregistrer, il faut le droit <code>manage_options</code> ; sur multisite il faut <code>manage_network_options</code>.</p>
<p>Les sections sont quatre. Le point 3 est « Comment ça marche, concrètement : ce qui est compté ». Le point 4 est « 1. Auteurs : publications trop fréquentes ». Le point 5 est « 2. Visiteurs : commentaires et formulaires de contact ». Le point 6 est « Utilisateurs actuellement suspendus ». Les valeurs de temps sont toutes en secondes.</p>
<h2>À quoi ça sert</h2>
<p>Le garde-fou sur les auteurs arrête un compte qui publie en rafale, avant qu&rsquo;il ne remplisse le site de contenus. Le garde-fou sur les visiteurs freine qui inonde les commentaires et les formulaires. Le code connaît aussi un troisième garde-fou, l&#8217;email obligatoire. Tu le trouves dans l&rsquo;onglet « Inscription des utilisateurs », décrit au <a href="https://www.cisilino.com/fr/?p=982">chapitre précédent</a>.</p>
<h2>Comment procéder</h2>
<h3>Ce qui est compté (point 3)</h3>
<p>L&rsquo;encadré informatif explique les règles. Pour les auteurs, le contrôle se déclenche quand WordPress enregistre un article ou une page. Le plugin compte combien d&rsquo;articles et de pages de cet auteur ont une date de création ou de publication dans les T dernières secondes. S&rsquo;il y en a plus de N, l&rsquo;auteur est suspendu. L&rsquo;enregistrement qui dépasse le seuil réussit : la suspension bloque les suivants.</p>
<p>Ne comptent pas les plugins et les thèmes, les connexions, les modifications de contenus plus anciens que la fenêtre, les brouillons automatiques, les révisions, la corbeille, les médias, les commentaires et les autres types de contenu. Les environnements temporaires, comme celui de test du Plugin Check, sont ignorés.</p>
<p><strong>Attention :</strong> l&rsquo;exemple écrit dans cet encadré cite encore N=3. C&rsquo;est un texte ancien. La valeur par défaut réelle est 150 contenus en 5 minutes, depuis la version 1.0.13.</p>
<h3>Auteurs (point 4)</h3>
<ol>
<li>Coche « Limitation de débit active » pour limiter les publications des auteurs.</li>
<li>Décide si tu gardes « Alerte par email » : tu reçois un mail à la suspension d&rsquo;un auteur.</li>
<li>Règle « N : contenus autorisés », de 1 à 1000. Par défaut 150.</li>
<li>Règle « T : fenêtre (secondes) », de 10 à 86400. Par défaut 300, c&rsquo;est-à-dire 5 minutes.</li>
<li>Règle « S : suspension (secondes) », de 60 à 2592000. Par défaut 3600, c&rsquo;est-à-dire 1 heure.</li>
<li>Clique sur <strong>Enregistrer les réglages de limitation de débit</strong>.</li>
</ol>
<p>Le mail part vers l&rsquo;adresse administrateur de Réglages &gt; Général. Il contient l&rsquo;utilisateur, les contenus dans la fenêtre, l&rsquo;expiration et la liste jusqu&rsquo;à 20 contenus récents à contrôler. La suspension ne modifie pas ces contenus.</p>
<h3>Visiteurs (point 5)</h3>
<ol>
<li>Coche « Limitation de débit active » pour limiter les envois des invités.</li>
<li>L&rsquo;« Alerte par email » est désactivée par défaut. Sur un site exposé, cela peut générer beaucoup de mails. Elle arrive à la même adresse administrateur de Réglages &gt; Général, une fois pour chaque blocage.</li>
<li>« N : envois autorisés », de 1 à 100. Par défaut 2.</li>
<li>« T : fenêtre (secondes) », de 5 à 3600. Par défaut 60.</li>
<li>« S : blocage IP (secondes) », de 60 à 2592000. Par défaut 3600.</li>
</ol>
<p>Le garde-fou concerne seulement qui n&rsquo;est pas connecté. Il compte les envois par IP et par type, commentaires ou formulaires. Un blocage sur les commentaires ne bloque pas les formulaires. Les formulaires de contact couverts sont ceux de Contact Form 7. Le commentaire rejeté affiche « Trop d&rsquo;envois » avec une erreur 429.</p>
<p>Si une valeur est hors des limites, le plugin la ramène à la plus proche autorisée. L&rsquo;enregistrement affiche « Réglages de limitation de débit enregistrés. Les valeurs hors des limites autorisées ont été ramenées à la plus proche permise. »</p>
<h2>Limitation de débit WordPress : suspensions et blocages</h2>
<p>Un auteur suspendu conserve son rôle et peut utiliser le reste du panneau. Il perd cependant les droits de créer et de publier des articles et des pages. « Ajouter un article » et les entrées des pages disparaissent, et s&rsquo;il ouvre ces écrans il reçoit « permission refusée ». Dans le tableau de bord apparaît un avertissement qui ne peut pas être fermé.</p>
<p><strong>Attention :</strong> la suspension des auteurs touche aussi les administrateurs. Un administrateur suspendu perd la création et la publication, mais peut encore ouvrir les Réglages et révoquer lui-même sa suspension. Il n&rsquo;existe pas de liste d&rsquo;exceptions pour utilisateurs, rôles ou IP : la liste blanche d&rsquo;IP de l&rsquo;onglet Général n&rsquo;exempte pas de la limitation de débit.</p>
<p><strong>Attention :</strong> le blocage des visiteurs est par IP. Plusieurs personnes derrière la même IP, comme un bureau, peuvent être bloquées ensemble. Dans ce cas, augmente N. Le plugin lit seulement l&rsquo;adresse de connexion (<code>REMOTE_ADDR</code>) et non les en-têtes de proxy ou de CDN : derrière un proxy inverse ou un CDN, tous les visiteurs peuvent apparaître avec la même IP et se bloquer mutuellement.</p>
<h3>Comment révoquer une suspension</h3>
<p>Tu as deux options.</p>
<ol>
<li>Attends. La suspension se termine seule après S secondes.</li>
<li>Dans la section au point 6, « Utilisateurs actuellement suspendus », clique sur <strong>Révoquer la suspension</strong> sur la ligne de l&rsquo;utilisateur. Tu verras « Suspension révoquée : l&rsquo;utilisateur peut de nouveau créer et publier des contenus. » Si le tableau est vide, tu lis « Aucun utilisateur suspendu. »</li>
</ol>
<p>Le tableau montre au maximum 100 utilisateurs. Les avertissements du tableau de bord ont les liens « Révoque la suspension » et « Contrôle et révoque », qui mènent au même onglet.</p>
<p>Éteindre « Limitation de débit active » ne retire pas une suspension déjà en cours. Pour la retirer, il faut la révoquer ou attendre l&rsquo;expiration.</p>
<h2>Ce qui se passe en coulisses</h2>
<p>La suspension est une information enregistrée sur l&rsquo;utilisateur, avec la date d&rsquo;expiration. Pour les invités, chaque envoi est enregistré pendant 24 heures dans une table du plugin, puis compté dans la fenêtre. Si deux requêtes arrivent ensemble, une de plus peut passer. Suspensions et blocages finissent dans le Registre d&rsquo;activité, s&rsquo;il est actif et si les groupes Utilisateurs et Commentaires sont activés.</p>
<p><strong>Attention :</strong> une importation légitime de nombreux contenus peut déclencher le garde-fou sur les auteurs. Avant une migration, désactive le garde-fou ou augmente N.</p>
<h2>Exemples de limitation de débit WordPress</h2>
<ul>
<li>Blog avec un seul auteur : tu peux abaisser N à 10 ou 20 avec T=300. Tu intercepteras plus vite un compte compromis. Ce sont des valeurs d&rsquo;essai, pas une règle du plugin.</li>
<li>Rédaction qui duplique ou importe des pages : garde 150/300 ou plus.</li>
<li>Bureaux avec IP partagée : augmente les envois autorisés des visiteurs à 3 ou 5.</li>
</ul>
<p>Conversions utiles : 300 secondes font 5 minutes, 3600 font 1 heure, 86400 font 1 jour. Pour approfondir le sujet général, lis le guide OWASP <a href="https://owasp.org/www-community/controls/Blocking_Brute_Force_Attacks" target="_blank" rel="noopener">Blocking Brute Force Attacks</a>, qui explique pourquoi limiter les tentatives répétées.</p>
<p>Précédent : <a href="https://www.cisilino.com/fr/?p=982">Inscription des utilisateurs : qui peut créer un compte</a>. Suivant : <a href="https://www.cisilino.com/fr/?p=984">Registre d&rsquo;activité : ce qui s&rsquo;est passé sur le site</a>. Pour le sommaire général, va au <a href="https://www.cisilino.com/fr/?p=972">chapitre 1 du manuel</a>.</p><p>The post <a href="https://www.cisilino.com/fr/2026/10/30/limitation-debit-limites-auteurs-visiteurs/">Limitation de débit : limites pour auteurs et visiteurs</a> first appeared on <a href="https://www.cisilino.com/fr/">Matteo Cisilino</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.cisilino.com/fr/2026/10/30/limitation-debit-limites-auteurs-visiteurs/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Inscription des utilisateurs : qui peut créer un compte</title>
		<link>https://www.cisilino.com/fr/2026/10/30/inscription-utilisateurs-qui-peut-creer-compte/</link>
					<comments>https://www.cisilino.com/fr/2026/10/30/inscription-utilisateurs-qui-peut-creer-compte/#respond</comments>
		
		<dc:creator><![CDATA[matteocisilino]]></dc:creator>
		<pubDate>Fri, 30 Oct 2026 16:05:49 +0000</pubDate>
				<category><![CDATA[Manuel CSDN]]></category>
		<category><![CDATA[Cisilino Site Defense Network]]></category>
		<category><![CDATA[inscription utilisateurs]]></category>
		<category><![CDATA[manuel CSDN]]></category>
		<category><![CDATA[rôles WordPress]]></category>
		<guid isPermaLink="false">https://www.cisilino.com/?p=1069</guid>

					<description><![CDATA[<p>Comment utiliser l'onglet Inscription des utilisateurs du plugin CSDN : politique, rôles autorisés, email obligatoire et les limites de la protection.</p>
<p>The post <a href="https://www.cisilino.com/fr/2026/10/30/inscription-utilisateurs-qui-peut-creer-compte/">Inscription des utilisateurs : qui peut créer un compte</a> first appeared on <a href="https://www.cisilino.com/fr/">Matteo Cisilino</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>L&rsquo;onglet « Inscription des utilisateurs » décide qui peut créer de nouveaux comptes sur ton site et avec quel rôle. C&rsquo;est la défense contre les administrateurs cachés, c&rsquo;est-à-dire des comptes créés en catimini pour revenir sur le site après une attaque. L&rsquo;inscription des utilisateurs WordPress se gère depuis là. Dans ce chapitre tu vois la politique d&rsquo;inscription, les rôles autorisés et l&#8217;email obligatoire.</p>
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" src="https://www.cisilino.com/wp-content/uploads/2026/10/manuale-csdn-registrazione-utenti.webp" alt="Schéma de WordPress avec l'onglet Inscription des utilisateurs WordPress du plugin CSDN mis en évidence" width="1200" height="630"/></figure>
<h2>Où se trouve</h2>
<p>Dans le menu de WordPress, ouvre <strong>Réglages</strong> puis <strong>Cisilino Site Defense Network</strong> (point 1 de l&rsquo;image). Choisis l&rsquo;onglet « Inscription des utilisateurs » (point 2). Pour enregistrer, il faut le droit <code>manage_options</code> ; sur multisite il faut <code>manage_network_options</code>.</p>
<p>Les sections sont trois. Le point 3 est « Politique d&rsquo;inscription ». Le point 4 est « Rôles autorisés (seulement niveau « rôles à faible privilège ») ». Le point 5 est « Email obligatoire ».</p>
<h2>À quoi ça sert</h2>
<p>La politique s&rsquo;applique à toutes les voies de création : le panneau wp-admin, l&rsquo;API REST, XML-RPC, WP-CLI et n&rsquo;importe quel plugin ou thème qui utilise les fonctions de WordPress pour créer des utilisateurs. Le contrôle se fait en PHP, sans toucher au fichier <code>.htaccess</code>.</p>
<h2>Comment procéder</h2>
<h3>Politique d&rsquo;inscription (point 3)</h3>
<p>Choisis un seul niveau parmi trois. Ils ne s&rsquo;additionnent pas.</p>
<ul>
<li>« Aucune restriction (désactivé) » : le module est éteint et WordPress se comporte comme d&rsquo;habitude.</li>
<li>« Rôles à faible privilège uniquement (jamais administrateur/éditeur/auteur) » : c&rsquo;est le niveau par défaut. Les rôles autorisés du point 4 s&rsquo;appliquent.</li>
<li>« Aucune inscription (exclusive) » : aucun nouvel utilisateur ne peut être créé.</li>
</ul>
<h3>Rôles autorisés (point 4)</h3>
<p>Cela vaut seulement pour le niveau des rôles à faible privilège. Tu peux cocher <code>subscriber</code> (coché par défaut), <code>contributor</code> et <code>customer</code> (utile avec WooCommerce). Les cases <code>administrator</code>, <code>editor</code>, <code>author</code> et <code>shop_manager</code> sont toujours désactivées, avec la mention « jamais autorisé ».</p>
<h3>Email obligatoire (point 5)</h3>
<p>La case « Ne pas créer d&rsquo;utilisateurs sans une adresse email valide » est active par défaut. Elle empêche la création d&rsquo;utilisateurs sans email valide, quelle que soit la voie. Elle ne touche pas les utilisateurs déjà existants. Ce réglage est enregistré avec ceux de la limitation de débit, mais se gère ici.</p>
<p>À la fin, clique sur <strong>Enregistrer la politique d&rsquo;inscription</strong>. Tu verras « Politique d&rsquo;inscription des utilisateurs enregistrée. » L&rsquo;enregistrement finit dans le Registre d&rsquo;activité, avec le libellé « Inscription des utilisateurs ».</p>
<h2>Inscription des utilisateurs WordPress : valeurs par défaut et limites</h2>
<ul>
<li>La politique par défaut est « Rôles à faible privilège uniquement », active même si tu n&rsquo;as jamais rien enregistré.</li>
<li>Le rôle autorisé de départ est seulement <code>subscriber</code>.</li>
<li>Les rôles interdits sont toujours rejetés, même si quelqu&rsquo;un essaie de les envoyer à la main.</li>
<li>La liste des rôles est fixe : elle ne montre pas les rôles personnalisés de ton site.</li>
<li>Il n&rsquo;existe pas de listes de domaines email, de captcha ni de contrôles anti-spam sur les inscriptions.</li>
</ul>
<p><strong>Attention :</strong> avec « Aucune inscription (exclusive) », personne ne peut créer d&rsquo;utilisateurs, pas même l&rsquo;administrateur. L&rsquo;entrée « Ajouter un nouvel utilisateur » disparaît du menu et ouvrir <code>user-new.php</code> à la main donne une erreur 403. Si, au niveau des rôles à faible privilège, tu décoches tous les rôles, la liste reste vide et aucun utilisateur n&rsquo;est autorisé. Ici cependant l&rsquo;entrée de menu et la page restent visibles : l&rsquo;erreur 403 n&rsquo;arrive qu&rsquo;au moment où tu essaies de créer l&rsquo;utilisateur.</p>
<p>Avec le niveau par défaut, tu ne peux pas créer un éditeur ou un auteur, même en étant administrateur. Le plugin ne prévoit pas d&rsquo;exceptions pour qui est déjà connecté. Pour créer un utilisateur avec un rôle élevé, passe temporairement à « Aucune restriction », crée l&rsquo;utilisateur, puis reviens en arrière.</p>
<p>Vérifie aussi le « Rôle par défaut des nouveaux utilisateurs » dans Réglages &gt; Général de WordPress. S&rsquo;il s&rsquo;agit d&rsquo;un rôle interdit, comme Éditeur, chaque inscription sans rôle explicite est rejetée.</p>
<h2>Ce qui se passe en coulisses</h2>
<p>Le contrôle principal agit sur le filtre <code>pre_insert_user_data</code>, seulement à la création d&rsquo;un utilisateur. Les modifications des utilisateurs existants passent toujours. Une tentative rejetée affiche le titre « Inscription non autorisée » avec une erreur 403. Sur l&rsquo;API REST, tu reçois une erreur JSON 403 au lieu de la page.</p>
<p>Avec n&rsquo;importe quelle politique active, le plugin retire la méthode XML-RPC <code>wp.newUser</code>. Avec la politique exclusive, il force aussi à faux l&rsquo;option « N&rsquo;importe qui peut s&rsquo;inscrire » de WordPress. Avec le niveau des rôles bas, cette option reste celle que tu as choisie.</p>
<p>Il existe aussi un filet de sécurité après la création. Si un compte naît malgré tout en violant la politique, le plugin lui retire immédiatement le rôle et écrit un événement dans le Registre d&rsquo;activité. Le compte n&rsquo;est pas supprimé, pour que tu puisses l&rsquo;examiner.</p>
<p><strong>Attention :</strong> un plugin ou un thème compromis qui écrit directement dans la table des utilisateurs avec un INSERT dans la base de données ne passe par aucun filtre. Aucun plugin PHP ne peut l&rsquo;arrêter. L&rsquo;inscription des utilisateurs WordPress protégée par cet onglet est une barrière solide, mais elle n&rsquo;est pas absolue.</p>
<h2>Exemples</h2>
<ul>
<li>Site vitrine sans utilisateurs publics : choisis « Aucune inscription (exclusive) ».</li>
<li>Site avec abonnés ou commentaires : laisse le niveau par défaut avec <code>subscriber</code>.</li>
<li>Boutique avec WooCommerce : ajoute <code>customer</code>.</li>
<li>Tu dois ajouter un collaborateur avec un rôle élevé : utilise « Aucune restriction » seulement le temps nécessaire.</li>
</ul>
<h2>Si quelque chose ne va pas</h2>
<p>Si une inscription est rejetée avec le message sur le rôle non autorisé, vérifie le rôle par défaut de WordPress et les rôles cochés au point 4. Le Registre d&rsquo;activité te dit si un compte a été privé de son rôle par le filet de sécurité. Pour mieux comprendre les rôles, lis la page <a href="https://wordpress.org/documentation/article/roles-and-capabilities/" target="_blank" rel="noopener">rôles et permissions dans la documentation de WordPress</a>. Elle liste ce que peut faire chaque rôle.</p>
<p>Précédent : <a href="https://www.cisilino.com/fr/?p=981">Paranoic Hardening : en-têtes de sécurité et session administrateur</a>. Suivant : <a href="https://www.cisilino.com/fr/?p=983">Limitation de débit : limites pour auteurs et visiteurs</a>. Pour le sommaire général, va au <a href="https://www.cisilino.com/fr/?p=972">chapitre 1 du manuel</a>.</p><p>The post <a href="https://www.cisilino.com/fr/2026/10/30/inscription-utilisateurs-qui-peut-creer-compte/">Inscription des utilisateurs : qui peut créer un compte</a> first appeared on <a href="https://www.cisilino.com/fr/">Matteo Cisilino</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.cisilino.com/fr/2026/10/30/inscription-utilisateurs-qui-peut-creer-compte/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
