Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

URL rewriting e sicurezza di WordPress

Utilizzare il mod_rewrite del Web server Apache e la riscrittura delle URL (URL rewriting) per rendere un'installazione di WordPress più sicura.
Utilizzare il mod_rewrite del Web server Apache e la riscrittura delle URL (URL rewriting) per rendere un'installazione di WordPress più sicura.
Link copiato negli appunti

Il mod_rewrite di Apache è un modulo che permette di riscrivere le URL a livello del server, in modo che le indecifrabili query string composte da coppie chiave=valore vengano tradotte in URL semanticamente comprensibili. Le URL semantiche, inoltre, permettono una migliore indicizzazione delle risorse nei motori di ricerca. Grazie al mod_rewrite è possibile reindirizzare la seguente risorsa:

http://example.com/?p=123

nell'URL:

http://example.com/il-mio-articolo-su-wordpress/

In WordPress il mod_rewrite è indispensabile per l'impostazione dei Pretty Permalink nella pagina di configurazione dei permalink.

Impostazioni Permalink

Questa premessa sul mod_rewrite è necessaria in quanto il modulo permette di implementare tecniche con cui migliorare la sicurezza dell'istallazione, evitando accessi da referenti non graditi, come robot e spammer. L'avvertenza è quella di effettuare un back-up completo di tutti i file presenti sul server, compreso l'.htaccess, prima di effettuare qualsiasi modifica.

URL rewriting

Il mod_rewrite non permette solo di tradurre in pretty permalink un indirizzo composto da nomi di variabili e rispettivi valori, ma consente anche di verificare che siano soddisfatte delle condizioni relative al referrer da cui proviene la richiesta. Si considerino le seguenti direttive:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_REFERER} example1.com [NC,OR]
RewriteCond %{HTTP_REFERER} example2.com [NC]
RewriteRule .* - [F]
</ifModule>

La sezione <IfModule> stabilisce in presenza di quale modulo le direttive debbano essere eseguite. La prima direttiva, RewriteEngine on, abilita il processo di runtime del modulo; RewriteCond stabilisce la condizione, che in questo caso è la corrispondenze del referrer ad example1.com ed example2.com.

In parentesi quadre vengono impostati i flag, che sono comandi che alterano il comportamento della RewriteRule. Nell'esempio appena visto, il flag NC sta per case-insensitive e le condizoni stabilite dalle direttive RewriteCond stabiliscono in quali circostanze debba essere eseguita la direttiva RewriteRule. La sintassi di quest'ultima è la seguente:

RewriteRule pattern substitution [flag1,flag2,flag3]

Il pattern è un'espressione regolare che individua una URL; la substitution riscrive la URL individuata dal pattern (in questo caso è assente); il flag F impone al server di restituire un errore 403 Forbidden. In questo modo potranno essere bloccate tutte le richieste provenienti dai domini individuati dalla RewriteCond. Questi domini sono individuabili dal file di log di Apache.

Commenti spam e robots

A meno che non si utilizzino specifici plugin, come tutti i siti aperti ai commenti degli utenti anche WordPress è soggetto allo spam dei commenti. Le stesse direttive descritte in precedenza possono essere utilizzate per ridurre la fastidiosa presenza di commenti non graditi:

RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.*example.com.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]

Le condizioni, in questo esempio, sono più numerose, ma probabilmente altrettanto chiare. In questo caso si stabilisce che la richiesta abbia metodo POST, che la risorsa richiesta sia il file wp-comments.php e che la richiesta provenga da un referrer diverso dal dominio di WordPress. Una volta verificate le condizioni, la RewriteRule reindirizza l'utente alla risorsa di provenienza e stabilisce il reindirizzamento come permanente ([L]).

Oltre al file .htaccess, un altro strumento per bloccare l'accesso dei robot è il file robots.txt, il quale stabilisce a quali risorse i robot non possano accedere. Le istruzioni che seguono, inserite all'interno del file robots.txt, negano ai robot l'accesso alle risorse specificate:

User-agent: *
Disallow: /cgi-bin/
Disallow: /feed/
Disallow: /trackback/
Disallow: /wp-admin/
Disallow: /wp-content/plugins/
Disallow: /wp-content/cache/
Disallow: /wp-content/themes/
Disallow: /wp-includes/
Disallow: /xmlrpc.php
Disallow: /wp-
Allow: /wp-content/uploads/
Sitemap: http://www.example.com/sitemap.xml

Il robot.txt rappresenta soltanto un'indicazione e non c'è garanzia che il robot obbedisca alle direttive del file.

Ti consigliamo anche