Massima Sicurezza di WordPress con l’.htaccess

Pubblicato da Yuri Carlenzoli | 24 Febbraio 2009

Il file .htaccess oltre essere essenziale per il funzionamento del blog basato su wordpress e non solo, permette anche di settare la sicurezza, ecco delle regole per wordpress.

htaccess-sicurezza-wordpress

Nell'introduzione al post ho parlato solo di un blog basato su wordpress, per chi non lo sapesse, il file .htaccess è presente o può essere messo su qualsiasi server linux, queste regole però sono per proteggere da occhi indiscreti, da spammer, da bug e da hacker esclusivamente un blog basato su wordpress.

Va detto che di default wordpress crea un file .htaccess, che è essenziale per il funzionamento del blog, però in ogni directory possono esserci altri .htaccess ognuno con regole specifiche, alcune regole è possibile aggiungerle al .htaccess originale di wordpress per garantire sicurezza e la praticità di non avere troppi .htaccess, quelle che elenco sono appunto da aggiungere all'.htaccess originale.

Prima di applicare le regole all'.htaccess non è indispensabile ma molto utile leggersi l'ebook per mettere in sicurezza wordpress così ci si porta avanti, poi si può aggiungere al file .htaccess originale queste regole.

Ecco la descrizione di cosa fanno le regole per l'.htaccess e relativo codice:

Per bloccare la visualizzazione del file di configurazione e relativi username e password del database

<Files ~ "config.php$">
deny from all
</Files>

Per non far commentare commentare chi non usa l'user agent

RewriteCond %{REQUEST_METHOD} =POST
RewriteCond %{HTTP_USER_AGENT} ^-?$
RewriteCond %{REQUEST_URI} !^/(wp-login.php|wp-admin/|wp-content/plugins/|wp-includes/).* [NC]
RewriteRule .* - [F,NS,L]

Per non consentire richieste dirette ad url con caratteri strani, usati spesso per hackerare

RewriteCond %{REQUEST_URI} !^/(wp-login.php|wp-admin/|wp-content/plugins/|wp-includes/).* [NC]
RewriteCond %{THE_REQUEST} !^[A-Z]{3,9} [a-zA-Z0-9.+_/-?=&]+ HTTP/ [NC]
RewriteRule .* - [F,NS,L]

Per proteggere dai comuni Exploit

RewriteCond %{REQUEST_URI} !^/(wp-login.php|wp-admin/|wp-content/plugins/|wp-includes/).* [NC]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} ///.* HTTP/ [NC,OR]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /.*?=?(http|ftp|ssl|https):/.* HTTP/ [NC,OR]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /.*??.* HTTP/ [NC,OR]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /.*.(asp|ini|dll).* HTTP/ [NC,OR]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /.*.(htpasswd|htaccess|aahtpasswd).* HTTP/ [NC]
RewriteRule .* - [F,NS,L]

Per evitare le richieste dirette ai file .php nella cartella wp-includes

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /wp-includes/.*$ [NC]
RewriteCond %{THE_REQUEST} !^[A-Z]{3,9} /wp-includes/js/.+/.+ HTTP/ [NC]
RewriteCond %{REQUEST_FILENAME} ^.+.php$
RewriteRule .* - [F,NS,L]

Dico che quando dovrete aggiornare plugin o scaricare i file tramite FTP dovrete togliere le regole dall'.htaccess poi rimetterle, altrimenti non si aggiorneranno i plugin/non scaricherete tutti i files, provate una regola per volta e se non dovesse andare bene il blog passate alla successiva.

Via AskApache

Thanks to image MassyMassy

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Moderazione dei commenti attiva. Il tuo commento non apparirà immediatamente.