Οδηγός: Προστασίας ιστοσελίδας με .htaccess

Htaccess αρχείο ή htaccess.txt. Θα το έχετε δεί σίγουρα έτοιμο στο cms που χρησιμοποιείται ή απο το developer σας όταν σας κατασκεύασε την ιστοσελίδα σας. Ένα .htaccess αρχείο μπορεί να δώσει αμέτρητες λειτουργίες και προφυλάξεις στην ιστοσελίδα μας. Εδώ θα δούμε 6 απλές εντολές που μπορείτε να βάλετε στο δικό σας .htaccess για προστασία απο κακόβουλες ενέργειες.

Τί είναι όμως το .htaccess αρχείο?

Eίναι ένα διαχειριστικό αρχείο ρυθμίσεων και οδηγιών για τους Apache webservers. Όταν ένα αρχείο .htaccess είναι τοποθετημένο στον αρχικό κατάλογο της ιστοσελίδας μας (ή και σε άλλους) τότε αυτό ανιχνεύεται απο τον Apache webserver και εκτελεί τις οδηγίες και εντολές που περιγράφει αυτό το αρχείο.

Αυτές οι οδηγίες/εντολές, ζητάνε απο τον apache είτε κάποια επιπλέον λειτουργικότητα, είτε να διαμορφώσουν τις υπάρχουσες λειτουργίες και τα χαρακτηριστικά που μας ήδη προσφέρει.

Σε αυτό το άρθρο θα δείτε 6 εντολές με τις οποίες αυξάνουμε την προστασία της σελίδας μας απο κακόβουλες ενέργειες.
Αναλυτικά οι ενέργειες που πρέπει να ακολουθήσουμε :

1) Cookies: HttpOnly

Για να αυξήσουμε την ασφάλεια της ιστοσελίδας μας (αλλά και των χρηστών μας) θα πρέπει να ενεργοποιήσετε την εντολή HttpOnly για όλα τα cookies που δημιουργεί η ιστοσελίδα μας. Αυτή η εντολή αποτρέπει τις επιθέσεις μέσω XSS (cross-site scripting) με σκοπό κάποιος να πάρει πρόσβαση στην ιστοσελίδα μας εκμεταλευόμμενος τα session cookies και την javascript.

Header always edit Set-Cookie (.*) "$1; HTTPOnly; Secure"

2) Απενεργοποίηση Directory Listing

Οι περισσότεροι webservers επιτρέπουν στους χρήστες να μπορούν να δούν το περιεχόμενο αρχείων και φακέλων μιας ιστοσελίδας ή ακόμα και το περιεχόμενο ενός αρχείου πχ ενός config.php που περιέχει τα στοιχεία σύνδεσης με την βάση.

Λογικά ο πάροχος σας θα το έχει ήδη φροντίσει για εσάς, εμείς στην υπηρεσία φιλοξενίας ιστοσελίδας, το έχουμε ήδη ενεργοποιημένο.

Options -Indexes

3) Security Headers: X-Content-Type: nosniff

Συχνά πυκνά ξεχνάμε συμπιεσμένα αρχεία στον χώρο της ιστοσελίδας μας απο backups ή έχουμε αρχείο βίντεο.

Αυτοί οι τύποι αρχείων μαζί με πολλούς άλλους είναι τα λεγόμενα mime-types. Εδώ μπορείτε να δείτε ολοκληρωμένη λίστα. Aυτά τα αρχεία μπορούν να ανιχνευτούν είτε απο μηχανές αναζήτησης είτε απο προγράμματα sniffers.

Σαν αποτέλεσμα έχουμε κάποιος να μπορέσει να δεί ή να κάνει download αρχείο το οποίο δεν θα θέλαμε να είναι διαθέσιμο.
Με την παρακάτω εντολή αποτρέπουμε την ανίχνευση αυτών των αρχείων.

Header set X-Content-Type-Options nosniff

4) Security Headers – X-Frame-Options

Θέλουμε να αποτρέψουμε απο κακόβουλους χρήστες να μπορούν να τοποθετήσουν την σελίδα μας και το περιεχόμενο της σε μορφή iframe σε κάποια άλλη τοποθεσία. Τεχνική γνωστή και ώς clickjacking.

Clickjacking (User Interface Redress Attack) είναι μια κακόβουλη μέθοδος για να μπερδέψει έναν χρήστη να κάνει κλίκ σε περιεχόμενο άλλο απο αυτό που νομίζει ότι έκανε κλικ.

Header always append X-Frame-Options SAMEORIGIN

5) Security Headers – X-XSS-Protection

Για να αποτρέψουμε επιθέσεις προς την σελίδα μας απο κάποιους τύπους XSS επιθέσεων προσθέτουμε το παρακάτω

Header set X-XSS-Protection "1; mode=block"

6) HTTP Trace Method

Αποτρέπουμε τις XST (cross-site tracing) μέσω της TRACE μεθόδου. Δεν έχει καμμία επίπτωση στους χρήστες όπου βλέπουν την σελίδα μας.

 RewriteEngine On 
  RewriteCond %{REQUEST_METHOD} ^TRACE 
  RewriteRule .* - [F]

 

Για όσα αναφέραμε παραπάνω,
προσθέστε στο κάτω μέρος του δικού σας .htaccess τις ολοκληρωμένες εντολές :

Header set X-XSS-Protection "1; mode=block"
Header always append X-Frame-Options SAMEORIGIN
Header set X-Content-Type-Options nosniff
Header always edit Set-Cookie (.*) "$1; HTTPOnly; Secure"

RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^TRACE
RewriteRule .* – [F] //Prevent directory listings
Options All -Indexes