Michele Mader on novembre 29th, 2010 - Google

Apache Logo

Apache Logo

Ho raccolto qui 17 metodi htaccess che ho usato o provato, e penso che alcuni di essi siano essenziali trucchi e consigli per proteggere il vostro server web da attacchi dannosi, oppure utili per svolgere compiti semplici in modo efficiente come il reindirizzamento e ottimizzazione del web server.

Generici

Le impostazioni seguenti riguardano l’ottimizzazione del server web, o reindirizzamenti vari o pagine di errore personalizzate

1. Impostazione del fuso orario

A volte, quando si utilizza la data o la funzione mktime in PHP, che vi mostrerà  un messaggio per quanto riguarda il fuso orario. Questo è uno dei modi per risolverlo. Imposta il fuso orario per il server. Un elenco di fusi orari supportati può essere trovato  qui

SetEnv TZ Europe/Rome

2. Redirect 301 - reindirizzamenti permanenti SEO Friendly

Perché è SEO friendly? Oggi, alcuni motori di ricerca moderni hanno la capacità  di rilevare i reindirizzamenti permanenti 301 e aggiornare i loro record esistenti, trasferendo il pagerank e quindi il posizionamento alla nuova pagina.

Redirect  301  http://www.studiomader.it/home http://www.studiomader.it/

3. Saltare la finestra di dialogo del download

Di solito quando si tenta di scaricare qualcosa da un server web si riceve una richiesta che chiede se si desidera salvare il file o aprirlo. Per evitare ciò, si può utilizzare il seguente codice nel file .htaccess

AddType application/octet-stream .pdf
AddType application/octet-stream .zip
AddType application/octet-stream .mov

4. Evitare www

Una delle linee guida SEO è assicurarsi che ci sia un solo URL a cui si possono trovare le pagine del sito web. Pertanto, ci sarà  bisogno di questo per reindirizzare tutto il traffico www a non-WWW, o viceversa.

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.studiomader.it [NC]
RewriteRule ^(.*)$ http://studiomader.it/$1 [L,R=301]

5. Pagine di errore personalizzate

Creare delle pagine di errore personalizzate per ciascuno dei codici di errore.

ErrorDocument 401 /error/401.php
ErrorDocument 403 /error/403.php
ErrorDocument 404 /error/404.php
ErrorDocument 500 /error/500.php

6. Comprimere i file

Ottimizzate il tempo di caricamento del vostro sito web comprimendo i file in modo da avere piccole dimensioni e quindi meno dati che transitano in rete.

# compress text, html, javascript, css, xml:
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

7. Cache dei file

File caching - un altro approccio per ottimizzare i tempi di caricamento sito

<FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$">
Header set Cache-Control "max-age=2592000"
</FilesMatch>

8. Disabilitare la cache di determinati tipo di file

Ok, d’altra parte, è possibile disabilitare la cache di altri determinati tipi di file.

# explicitly disable caching for scripts and other dynamic files
<FilesMatch ".(pl|php|cgi|spl|scgi|fcgi)$">
Header unset Cache-Control
</FilesMatch>

Sicurezza

Il codice htaccess seguente sarà  in grado di migliorare il livello di sicurezza del webserver. La protezione dai collegamenti diretti è piuttosto utile per evitare che altre persone utilizzino immagini memorizzate nel server.

9. Protezione dall’Hotlinking con .htaccess

Odi quando la gente ruba banda dal tuo sito web utilizzando le immagini che sono ospitate sul server web? Utilizza questo e sarai in grado di impedire che ciò accada.

RewriteBase /
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?studiomader.it/.*$ [NC]
RewriteRule .(gif|jpg|swf|flv|png)$ /feed/ [R=302,L]

10. Prevenire hack

Se vuoi aumentare il livello di sicurezza del tuo sito web, è possibile usare queste poche righe di codice per evitare alcune comuni tecniche di hacking, individuando modelli di URL maligni.

RewriteEngine On

# proc/self/environ? no way!
RewriteCond %{QUERY_STRING} proc/self/environ [OR]

# Block out any script trying to set a mosConfig value through the URL
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]

# Block out any script trying to base64_encode crap to send via URL
RewriteCond %{QUERY_STRING} base64_encode.*(.*) [OR]

# Block out any script that includes a <script> tag in URL
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]

# Block out any script trying to set a PHP GLOBALS variable via URL
RewriteCond %{QUERY_STRING} GLOBALS(=|[|\%[0-9A-Z]{0,2}) [OR]

# Block out any script trying to modify a _REQUEST variable via URL
RewriteCond %{QUERY_STRING} _REQUEST(=|[|\%[0-9A-Z]{0,2})

# Send all blocked request to homepage with 403 Forbidden error!
RewriteRule ^(.*)$ index.php [F,L]

11. Bloccare l’accesso al file .htaccess

Il seguente codice impedire all’utente di accedere al file .htaccess. Inoltre, è possibile bloccare tipi di file multipli.

# secure htaccess file
<Files .htaccess>
Order Allow,Deny
Deny from all
</Files>

# prevent viewing of a specific file
<Files secretfile.jpg>
Order Allow,Deny
Deny from all
</Files>

# multiple file types
<FilesMatch ".(htaccess|htpasswd|ini|phps|fla|psd|log|sh)$">
Order Allow,Deny
Deny from all
</FilesMatch>

12. Rinominare i file .htaccess

è anche possibile rinominare il nome del file da .htaccess a qualcos’altro per impedirne l’accesso.

AccessFileName htacc.ess

13. Disabilita directory browsing

Evitare il server di visualizzare l’indice delle directory, o il contrario.

# disable directory browsing
Options All -Indexes

# enable directory browsing
Options All +Indexes

14. Cambia pagina di default predefinita

è possibile modificare la pagina di default index.html, index.php o index.htm a qualcos’altro.

DirectoryIndex business.html

15. Blocco di visitatori indesiderati sulla base del dominio di provenienza

Nel caso in cui si ricevano attacchi da qualche sito specifico, può essere utile bloccare gli accessi diretti da quel dominio. Per impedire l’accesso, viene utilizzata una regola impostata sulla base dell’HTTP referrer

# block visitors referred from indicated domains

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

16. Bloccare richieste sulla base dell’header User-Agent

Questo metodo potrebbe salvare la vostra quota di larghezza di banda impedendo ad alcuni bot o spider di eseguire la scansione del vostro sito web.

# block visitors referred from indicated domains
<IfModule mod_rewrite.c>
SetEnvIfNoCase ^User-Agent$ .*(craftbot|download|extract|stripper|sucker|ninja|clshttp|webspider|leacher|collector|grabber|webpictures) HTTP_SAFE_BADBOT
SetEnvIfNoCase ^User-Agent$ .*(libwww-perl|aesop_com_spiderman) HTTP_SAFE_BADBOT
Deny from env=HTTP_SAFE_BADBOT
</ifModule>

17. Directory più sicure disabilitando l’esecuzione di script

Una grossa fonte di vulnerabilità  può essere l’esecuzione di script lato server. Buona norma quindi disabilitarla ad esempio sulle cartelle upload, dove gli utenti possono caricare files.

# secure directory by disabling script execution
AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi
Options -ExecCGI

Per il momento non ci sono post correlati.

Tags:

Leave a Reply

You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>