25 Trucchi Utili di Apache ‘.htaccess’ per Sicurezza e Personalizzazione dei Siti Web

I siti web sono parti importanti della nostra vita. Servono come mezzo per estendere i business, condividere conoscenze e molto altro. Inizialmente limitati a fornire solo contenuti statici, con l’introduzione delle lingue di scripting client e server dinamiche e l’avanzamento continuo delle lingue statiche esistenti come html fino a html5, è possibile aggiungere ogni bit di dinamicità ai siti web, e ciò che resta è da aspettarsi di seguire presto nel futuro prossimo.

Con i siti web, arriva anche la necessità di un’unità in grado di mostrare questi siti web a un vasto pubblico sparse per il globo. questa necessità è soddisfatta dai server che forniscono i mezzi per ospitare un sito web. questo include una lista di server come: Apache HTTP Server, Joomla, e WordPress che consentono di ospitare i loro siti web.

25 htaccess Tricks

Chi vuole ospitare un sito web può creare un server locale proprio o può contattare uno dei server citati o qualsiasi altro amministratore di server per ospitare il suo sito web. Ma l’vero problema inizia da questo punto. Il rendimento di un sito web dipende principalmente dai seguenti fattori:

  1. Bandwidth utilizzato dal sito web.
  2. La sicurezza del sito web rispetto agli hacker.
  3. L’ottimizzazione quando viene fatta una ricerca di dati nel database
  4. La facilità d’uso quando viene mostrata la navigazione e forniti più feature UI.

Oltre a questo, diversi fattori che governano il successo dei server nell’ospitare siti web sono:

  1. La quantità di compressione dei dati raggiunta per un determinato sito web.
  2. La capacità di servire simultaneamente molti client che richiedono lo stesso o un sito web diverso.
  3. Proteggere i dati confidenziali inseriti sui siti web come: email, dettagli della carta di credito e così via.
  4. Permettere sempre più opzioni per migliorare la dinamicità di un sito web.

Questo articolo tratta di una funzionalità fornita dai server che aiuta a migliorare le prestazioni dei siti web e a proteggerli da bot malevoli, hotlink, ecc., ossia il file ‘.htaccess‘.

Cos’è .htaccess?

htaccess (o hypertext access) sono i file che forniscono opzioni ai proprietari dei siti web per controllare le variabili dell’ambiente server e altri parametri per migliorare la funzionalità dei loro siti web. Questi file possono risiedere in qualsiasi directory nella struttura a directory del sito web e fornire funzionalità alla directory e ai file e cartelle al suo interno.

Che funzionalità sono queste? Beh, si tratta delle direttive del server, ovvero le linee che istruiscono il server a eseguire una specifica attività, e queste direttive si applicano solo ai file e alle cartelle all’interno della cartella in cui è posizionato questo file. Questi file sono nascosti per impostazione predefinita poiché tutti i sistemi operativi e i server web sono configurati per ignorarli per impostazione predefinita, ma rendendo visibili i file nascosti è possibile vedere questo file molto speciale. Quali tipi di parametri possono essere controllati è argomento di discussione delle sezioni successive.

Nota: Se il file .htaccess è posizionato nella directory /apache/home/www/Gunjit/, allora fornirà direttive per tutti i file e le cartelle in quella directory. Tuttavia, se questa directory contiene una altra cartella chiamata /Gunjit/images/, che a sua volta contiene un altro file .htaccess, le direttive in questa cartella sovrascriveranno quelle fornite dal file .htaccess principale (o file nella directory a monte).

Server Apache e file .htaccess

Server HTTP Apache, comunemente chiamato Apache, è stato così chiamato in onore di un tribù di nativi americani Apache, per rispetto alle loro eccezionali abilità in strategia bellica. Basato su C/C++ e XML, è un server web cross-platform che si basa sul server NCSA HTTPd ed ha un ruolo chiave nella crescita e nell’avanzamento di World Wide Web.

Di solito utilizzato su UNIX, Apache è disponibile per una varietà di piattaforme, inclusi FreeBSD, Linux, Windows, Mac OS, Novel Netware e così via. Nel 2009, il server Apache è diventato il primo server per servire più di 100 milioni di siti web.

Il server Apache ha un file .htaccess per ogni utente nella directory www/. Anche se questi file sono nascosti, possono essere renderizzati visibili se necessario. Nella directory www/ ci sono molte cartelle, ciascuna relative a un sito web che prende il nome dell’utente o del proprietario. Oltre a questo, è possibile avere un file .htaccess in ogni cartella, che configura i file in quella cartella come indicato sopra.

La configurazione del file .htaccess su server Apache è come segue…

Configurazione su server Apache

Potrebbero essere due casi:

Ospitare un sito web sul proprio server

In questo caso, se i file .htaccess non sono abilitati, puoi abilitare i file .htaccess semplicemente andando su httpd.conf (File di configurazione predefinito per il demone Apache HTTP) e trovando la sezione <Directories>.

<Directory "/var/www/htdocs">

E localizzare la riga che recita…

AllowOverride None 

E correggerla così.

AllowOverride All

Adesso, ricominciando Apache, .htaccess funzionerà.

Ospitare un sito web su server diversi fornitori di hosting

In questo caso, è meglio consultare l’amministratore del hosting, se consente l’accesso ai file .htaccess.

25 Trick ‘`.htaccess`’ del Server Web Apache per i siti web

1. Come abilitare mod_rewrite nel file .htaccess

mod_rewrite consente di utilizzare le redirezioni e di nascondere la URL reale con una redirezione a un’altra URL. Questa opzione può risultare molto utile, permettendogli di sostituire le URL lunghe e complesse con quelle corte e facili da ricordare.

Per consentire mod_rewrite abbiamo solo bisogno di aggiungere la seguente riga come prima riga del tuo file .htaccess.

Options +FollowSymLinks

Questa opzione ti consente di seguire i link simbolici e quindi abilitare l’opzione mod_rewrite sul sito web. La sostituzione dell’URL con una breve e precisa versione viene presentata successivamente.

2. Come consentire o negare l’accesso ai siti web

htaccess file può consentire o negare l’accesso al sito web o a una cartella o file nel directory in cui è posizionato utilizzando i keyword order, allow e deny.

Consentendo l’accesso solo all’IP 192.168.3.1
Order Allow, Deny
Deny from All
Allow from 192.168.3.1

OR

Order Allow, Deny
Allow from 192.168.3.1

La parola chiave Order qui specifica l’ordine in cui sarebbe elaborato l’accesso consentito, negato. Per l’istruzione ‘Order’ sopra, le istruzioni Allow sarebbero elaborate prima e quindi le istruzioni deny sarebbero elaborate.

Negare l’accesso a un solo indirizzo IP

Le righe seguenti consentono l’accesso al sito web a tutti gli utenti, tranne uno con indirizzo IP: 192.168.3.1.

rder Allow, Deny
Deny from 192.168.3.1
Allow from All

OR


Order Deny, Allow
Deny from 192.168.3.1

3. Generare documenti di errore Apache per diversi codici di errore.

Utilizzando alcune semplici righe, possiamo correggere il documento di errore che viene eseguito su diversi codici di errore generati dal server quando l’utente/cliente richiede una pagina non disponibile sul sito web, come la pagina ‘404 Pagina non trovata‘ che molti di noi avranno visto nel proprio browser web. I file ‘.htaccess‘ specificano quale azione intraprendere in caso di tali condizioni di errore.

Per fare ciò, è necessario aggiungere le seguenti righe ai file ‘.htaccess‘:

ErrorDocument <error-code> <path-of-document/string-representing-html-file-content>

ErrorDocument‘ è una parola chiave, il codice di errore può essere uno qualsiasi tra 401, 403, 404, 500 o qualsiasi altro codice di errore valido e infine, ‘percorso-del-documento’ rappresenta il percorso sulla macchina locale (nel caso in cui si stia utilizzando il proprio server locale) o sul server (nel caso in cui si stia utilizzando il server di qualcun altro per ospitare il proprio sito web).

Esempio:
ErrorDocument 404 /error-docs/error-404.html

La riga sopra imposta il documento ‘error-404.html‘ posizionato nella cartella error-docs da visualizzare nel caso in cui il server segnali un errore 404 per una richiesta non valida di una pagina da parte del client.

rrorDocument 404 "<html><head><title>404 Page not found</title></head><body><p>The page you request is not present. Check the URL you have typed</p></body></html>"

La rappresentazione sopra è corretta anche se posiziona la stringa che rappresenta un file html usuale.

4. Impostazione/Cancellazione delle variabili di ambiente del server Apache

Nel file .htaccess è possibile impostare o cancellare le variabili di ambiente globali che il server consente di modificare agli host dei siti web. Per impostare o cancellare le variabili di ambiente è necessario aggiungere le seguenti righe ai file .htaccess.

Impostare le variabili di ambiente
SetEnv OWNER “Gunjit Khera”
Cancellare le variabili di ambiente
UnsetEnv OWNER

5. Definizione di diversi tipi MIME per i file

MIME (Multipurpose Internet Multimedia Extensions) sono i tipi riconosciuti dal browser per impostazione predefinita durante l’esecuzione di qualsiasi pagina web. È possibile definire i tipi MIME per il proprio sito web nei file .htaccess, in modo che il server possa riconoscere e eseguire diversi tipi di file definiti dall’utente.

<IfModule mod_mime.c>
	AddType	application/javascript		js
	AddType application/x-font-ttf		ttf ttc
</IfModule>

Qui, mod_mime.c è il modulo per controllare le definizioni dei diversi tipi MIME e se hai questo modulo installato sul tuo sistema, puoi utilizzarlo per definire diversi tipi MIME per le diverse estensioni utilizzate nel tuo sito web in modo che il server possa comprenderle.

6. Come limitare la dimensione degli upload e download in Apache

I file .htaccess ti consentono di controllare la quantità di dati caricati o scaricati da un particolare client dal tuo sito web. Per farlo, devi solo aggiungere le seguenti righe al tuo file .htaccess:

php_value upload_max_filesize 20M
php_value post_max_size 20M
php_value max_execution_time 200
php_value max_input_time 200

Le righe sopra impostano la dimensione massima di upload, la dimensione massima dei dati inviati, il tempo massimo di esecuzione, cioè il tempo massimo che un utente può eseguire un sito web sulla propria macchina locale, e il vincolo temporale massimo sull’input.

Source:
https://www.tecmint.com/apache-htaccess-tricks/