{"id":1985,"date":"2012-02-16T02:23:31","date_gmt":"2012-02-16T01:23:31","guid":{"rendered":"https:\/\/www.creativejuiz.fr\/blog\/?p=1985"},"modified":"2024-01-31T16:50:52","modified_gmt":"2024-01-31T15:50:52","slug":"dossier-ameliorer-securite-wordpress-hooks","status":"publish","type":"post","link":"https:\/\/www.creativejuiz.fr\/blog\/wordpress\/dossier-ameliorer-securite-wordpress-hooks","title":{"rendered":"Dossier WordPress &#8211; Am\u00e9liorer la s\u00e9curit\u00e9 de WordPress avec quelques hooks"},"content":{"rendered":"<p>Une fois les plugins de s\u00e9curit\u00e9 install\u00e9s, il peut parfois subsister certains indices ci et l\u00e0 qui peuvent fournir des informations suppl\u00e9mentaires sur votre installation WordPress.<br \/>\nBien entendu, c&rsquo;est informations ne sont pas des failles en elles-m\u00eames, mais il peut \u00eatre int\u00e9ressant de les cacher.<!--more--><\/p>\n<p>Voici donc quelques hooks &#8211; c&rsquo;est morceaux de code qui vous donnent acc\u00e8s \u00e0 la modification de portions de fonctions WordPress &#8211; afin de modifier certaines actions, sans toucher au c\u0153ur du gestionnaire de contenu. Cela vous permettra de b\u00e9n\u00e9ficier des mises \u00e0 jour de WordPress sans aucun probl\u00e8me.<br \/>\nLa plupart de ces codes sont \u00e0 placer dans le fichier <code>functions.php<\/code> de votre th\u00e8me WordPress.<\/p>\n<h2>Supprimer le message d&rsquo;erreur \u00e0 la connexion<\/h2>\n<p class=\"center\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-1844\" title=\"\" src=\"https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2012\/01\/info-wordpress-login-error.jpg\" alt=\"\" width=\"590\" height=\"195\" srcset=\"https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2012\/01\/info-wordpress-login-error.jpg 590w, https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2012\/01\/info-wordpress-login-error-300x99.jpg 300w\" sizes=\"(max-width: 590px) 100vw, 590px\" \/><\/p>\n<p>Lorsque vous vous connectez \u00e0 l&rsquo;interface d&rsquo;administration de WordPress et que vous commettez une erreur, un message d&rsquo;information apparait.<br \/>\nCelui-ci est suffisamment explicite pour vous dire que votre mot de passe n&rsquo;est pas le bon, ce qui signifie que votre login est bon, ou inversement. (vous me suivez ? :p)<br \/>\nBref, pour supprimer cette information bien inutile &#8211; ou du moins trop utile \u00e0 la mauvaise intention, et pas suffisamment \u00e0 la bonne &#8211; il vous suffit d&rsquo;utiliser ce code.<\/p>\n<pre class=\"code\"><code class=\"php\">if ( !function_exists(\"remove_login_error_messages\")) {\r\n    function remove_login_error_messages($val){\r\n        $val = __('Same player plays again');\r\n\t\treturn $val;\r\n    }\r\n}\r\nadd_filter('login_errors','remove_login_error_messages');<\/code><\/pre>\n<p>Si vous souhaitez retirer compl\u00e8tement le message (et \u00e7a semble <a title=\"Commentaire plus bas dans la page\" href=\"#comment-5021\">conseill\u00e9<\/a>), retirez la troisi\u00e8me ligne et remplacez <code>return $val;<\/code> par <code>return null;<\/code>.<\/p>\n<h2>Supprimer la version de WordPress<\/h2>\n<p class=\"center\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-1845\" title=\"\" src=\"https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2012\/01\/wordpress-version-hide.jpg\" alt=\"\" width=\"590\" height=\"195\" srcset=\"https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2012\/01\/wordpress-version-hide.jpg 590w, https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2012\/01\/wordpress-version-hide-300x99.jpg 300w\" sizes=\"(max-width: 590px) 100vw, 590px\" \/><\/p>\n<p>WordPress, gr\u00e2ce \u00e0 la fonction wp_head() pr\u00e9sente dans votre th\u00e8me, affiche la meta suivante\u00a0: <code>&lt;meta name=\"generator\" value=\"WordPress x.x.x\"\/&gt;<\/code><br \/>\nDans le fichier functions.php de votre th\u00e8me WordPress, ajoutez ce code pour supprimer cette meta inutile\u00a0:<\/p>\n<pre class=\"code\"><code class=\"js boc-nocontrols\">remove_action('wp_head', 'wp_generator');<\/code><\/pre>\n<p>Le plugin <a href=\"http:\/\/wordpress.org\/extend\/plugins\/wp-security-scan\/\">WP Security Scan<\/a> se propose de le faire pour vous, si vous n&rsquo;\u00eates pas tr\u00e8s code. (peut-\u00eatre l&rsquo;avez-vous d\u00e9j\u00e0 install\u00e9)<\/p>\n<p>Il est \u00e9galement possible de retirer cette information du <strong>flux RSS<\/strong> :<\/p>\n<pre class=\"code\"><code class=\"js boc-nocontrols\">if (!function_exists('juiz_no_generator')){\r\n\tfunction juiz_no_generator() { return ''; }\r\n}\r\nadd_filter('the_generator', 'juiz_no_generator');<\/code><\/pre>\n<p>En plus de cette meta, le num\u00e9ro de version de WordPress, mais aussi des plugins install\u00e9s sont affich\u00e9s en bout de <strong>chemin des fichiers CSS et JS<\/strong> sous cette forme : <code>style.css?ver=3.3.1<\/code><br \/>\nC&rsquo;est \u00e9galement une information qui peut \u00eatre retir\u00e9e en entrant ce code dans le fichier <code>functions.php<\/code> :<\/p>\n<pre class=\"code\"><code class=\"php\">if( !function_exists(\"delete_script_version\")) {\r\n    function delete_script_version( $src ){\r\n        $parts = explode( '?', $src );\r\n        return $parts[0];\r\n    }\r\n}\r\nadd_filter( 'script_loader_src', 'delete_script_version', 15, 1 );\r\nadd_filter( 'style_loader_src', 'delete_script_version', 15, 1 );<\/code><\/pre>\n<p><a title=\"La source de cette astuce sur les variables des fichiers JS et CSS\" href=\"http:\/\/www.geekpress.fr\/wordpress\/astuce\/supprimer-variable-ver-fichiers-javascript-css-wordpress-173\/\">Source<\/a><\/p>\n<h2>D\u00e9sactiver les \u00e9diteurs de th\u00e8mes et plugins<\/h2>\n<p>WordPress offre la possibilit\u00e9 par d\u00e9faut d&rsquo;\u00e9diter les fichiers des th\u00e8mes et plugins depuis l&rsquo;interface d&rsquo;administration.<br \/>\nJe n&rsquo;ai jamais encore trouv\u00e9 l&rsquo;int\u00e9r\u00eat de ces \u00e9diteurs, et leur activation par d\u00e9faut est un risque si certains utilisateurs non pr\u00e9venus viennent y mettre les pieds.<br \/>\nD\u00e9sactivez simplement cette fonction gr\u00e2ce \u00e0 ce morceau de code \u00e0 placer dans le fichier <code>wp-config.php<\/code> se trouvant \u00e0 la racine de votre installation WordPress&amp;nsbp;:<\/p>\n<pre class=\"code\"><code class=\"php boc-nogutter boc-nocontrols\">define( 'DISALLOW_FILE_EDIT', true );<\/code><\/pre>\n<p>C&rsquo;est tout.<br \/>\nMerci \u00e0 alex pour <a href=\"https:\/\/www.creativejuiz.fr\/blog\/wordpress\/dossier-securiser-wordpress-fichier-htaccess#comment-5862\">la suggestion<\/a>.<br \/>\n<a href=\"http:\/\/www.geekpress.fr\/wordpress\/astuce\/desactiver-editeur-themes-plugins-765\/\">Source<\/a><\/p>\n<h2>Cr\u00e9er un plugin pour bloquer les requ\u00eates suspectes<\/h2>\n<p>Les injections SQL peuvent se faire en exploitant une faille dans un formulaire, que la m\u00e9thode soit en POST ou en GET, ou directement dans une URL.<br \/>\nAussi, pour pr\u00e9venir ces injections, il est possible de filtrer la requ\u00eate en recherchant des mots clefs extraits de requ\u00eates SQL.<br \/>\nNous allons cr\u00e9er un plugin. Pour ce faire, rendez-vous dans le dossier <code>wp-content\/plugins\/<\/code> et cr\u00e9er le nouveau dossier \u00ab\u00a0blockbadqueries\u00a0\u00bb dans lequel vous glisserez le fichier blockbadqueries.php dont voici le contenu :<\/p>\n<pre class=\"code\"><code class=\"php\">&lt;?php\r\n\/*\r\nPlugin Name: Block Some Bad Queries\r\nPlugin URI: https:\/\/www.creativejuiz.fr\/blog\/wordpress\/dossier-ameliorer-securite-wordpress-hooks\r\nDescription: Protect WordPress Against some malicious URL requests\r\nAuthor URI: https:\/\/geoffreycrofte.com\r\nAuthor: Geoffrey Crofte\r\nVersion: 1.0.0\r\nOriginal old version from: http:\/\/perishablepress.com\/\r\n*\/\r\n\r\nglobal $user_ID;\r\n\r\nif($user_ID) {\r\n\tif(!current_user_can('level_10')) {\r\n\t\tif (strlen($_SERVER['REQUEST_URI']) &gt; 255) {\r\n\t\t\t@header(\"HTTP\/1.1 414 Request-URI Too Long\");\r\n\t\t\t@header(\"Status: 414 Request-URI Too Long\");\r\n\t\t\t@header(\"Connection: Close\");\r\n\t\t\t@exit;\r\n\t\t}\r\n\t}\r\n}\r\n\r\nif (strpos($_SERVER['REQUEST_URI'], \"eval(\") ||\r\nstrpos($_SERVER['REQUEST_URI'], \"CONCAT\") ||\r\nstrpos($_SERVER['REQUEST_URI'], \"UNION+SELECT\") ||\r\nstrpos($_SERVER['REQUEST_URI'], \"base64\")) {\r\n\t@header(\"HTTP\/1.1 414 Request-URI Too Long\");\r\n\t@header(\"Status: 414 Request-URI Too Long\");\r\n\t@header(\"Connection: Close\");\r\n\t@exit;\r\n}\r\n?&gt;<\/code><\/pre>\n<p>Activez le plugin depuis l&rsquo;interface de WordPress et le tour et jou\u00e9.<br \/>\nCe script v\u00e9rifie le contenu de la requ\u00eate, et s&rsquo;il trouve quelque chose de suspect renvoie une erreur 414 (URL trop longue).<\/p>\n<p>Pour ceux qui auraient davantage d&rsquo;affinit\u00e9 avec <code>.htaccess<\/code>, je vous invite \u00e0 lire la suite qui comporte \u00e9galement une solution alternative (compl\u00e9mentaire ?) \u00e0 ce plugin. Cette solution a \u00e9galement \u00e9t\u00e9 propos\u00e9e par Perishable Press.<\/p>\n<div class=\"tdm\">\n<h2><a href=\"https:\/\/www.creativejuiz.fr\/blog\/tutoriels\/wordpress-securisez-votre-site-grace-a-quelques-astuces\">Sommaire du dossier<\/a><\/h2>\n<ol>\n<li><a href=\"https:\/\/www.creativejuiz.fr\/blog\/wordpress\/wordpress-conseils-securite-bien-debuter-entretenir-son-site\">Conseils de s\u00e9curit\u00e9 pour bien d\u00e9buter<\/a><\/li>\n<li><a href=\"https:\/\/www.creativejuiz.fr\/blog\/wordpress\/dossier-wordpress-plugins-ameliorer-securite\">Quelques plugins pour am\u00e9liorer la s\u00e9curit\u00e9 de WordPress<\/a><\/li>\n<li><span class=\"current\">Am\u00e9liorer la s\u00e9curit\u00e9 de WordPress avec quelques hooks<\/span><\/li>\n<li><a href=\"https:\/\/www.creativejuiz.fr\/blog\/wordpress\/dossier-securiser-wordpress-fichier-htaccess\">S\u00e9curiser davantage WordPress avec le fichier .htaccess<\/a><\/li>\n<\/ol>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Une fois les plugins de s\u00e9curit\u00e9 install\u00e9s, il peut parfois subsister certains indices ci et l\u00e0 qui peuvent fournir des informations suppl\u00e9mentaires sur votre installation WordPress. Bien entendu, c&rsquo;est informations ne sont pas des failles en elles-m\u00eames, mais il peut \u00eatre int\u00e9ressant de les cacher.<\/p>\n","protected":false},"author":4,"featured_media":2025,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_bluesky_dont_syndicate":"","_bluesky_syndication_accounts":"","_bluesky_syndication_text":"","footnotes":""},"categories":[13],"tags":[442,434,395,684],"coauthors":[597],"class_list":["post-1985","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-wordpress","tag-add_filter","tag-hook","tag-securite","tag-wordpress"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/posts\/1985","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/comments?post=1985"}],"version-history":[{"count":1,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/posts\/1985\/revisions"}],"predecessor-version":[{"id":8584,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/posts\/1985\/revisions\/8584"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/media\/2025"}],"wp:attachment":[{"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/media?parent=1985"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/categories?post=1985"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/tags?post=1985"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/coauthors?post=1985"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}