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 substitution F 403 Forbidden RewriteCond

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

Ti consigliamo anche