Αναμείνατε ολίγον τι
Web Devel

Directory Browsing: γιατί πρέπει να το απενεργοποιήσουμε και πως

Directory Browsing: γιατί πρέπει να το απενεργοποιήσουμε και πως

Οι περισσότεροι webservers, όπως είναι οι Apache, NGINX και LiteSpeed, έχουν σαν προεπιλογή ενεργοποιημένη την προσπέλαση των καταλόγων των ιστοσελίδων (directory browsing).

Με απλά λόγια, όταν αυτή η λειτουργία είναι ενεργοποιημένη μπορούμε να έχουμε πρόσβαση και να δούμε-προσπελάσουμε όλους τους καταλόγους που απαρτίζουν την ιστοσελίδα μας.

Αν το δούμε μόνο από άποψη ασφάλειας, δίνουμε την δυνατότητα στον οποιονδήποτε, και ειδικότερα σε αυτούς που θέλουν να βλάψουν την ιστοσελίδα μας, να δει και να μάθει ποια είναι η δομή της σελίδας (site structure) και τι ακριβώς περιέχει.

Αυτοί που έχουν εμπειρία στο να εκμεταλλεύονται τέτοιες καταστάσεις -συνηθισμένος όρος είναι ο hacker αλλά ο σωστός όρος είναι crackers – τους ανοίγεται ο δρόμος να ανακαλύψουν πολύ εύκολα ποια exploits υπάρχουν στην σελίδα σας, στα themes και στα plugins που χρησιμοποιείται αν έχετε κάποιο CMS.

Ας δούμε λοιπόν τι μπορούμε να κάνουμε για όλα αυτά, και ας βάλουμε σαν παράδειγμα το πιο γνωστό CMS, το WordPress.

Αν ακολουθήσετε τον σύνδεσμο: https://site.gr/wp-includes/ (όπου site.gr είναι το όνομα της σελίδας σας) και σας εμφανίσει μία λίστα από καταλόγους/φακέλους, τότε το directory browsing είναι ενεργοποιημένο.

Σημείωση: ελπίζω να έχετε ενεργοποιήσει το πρωτόκολλο ασφαλείας στην σελίδα σας και να χρησιμοποιείτε το https.

Σε μία τέτοια περίπτωση, θα δείτε κάτι αντίστοιχο με αυτό:

index of WordPress /wp-content/uploads/2018/

Βασικά στοιχεία για τον τρόπο λειτουργίας των webservers

Αν ένας κατάλογος περιέχει ένα αρχείο με όνομα index.php ή index.htm ή index.html, τότε ο webserver όταν κάποιος επισκεφθεί αυτό τον κατάλογο, έχει σαν βασική ρύθμιση να φορτώσει αυτό το αρχείο.

Έτσι, αν υπάρχει κάποιο τέτοιο αρχείο μέσα στον κατάλογο, τότε ο επισκέπτης δεν θα μπορεί να δει τα περιεχόμενο του καταλόγου αφού θα μεταφερθεί και θα δει όσα υπάρχουν μέσα στο αρχείο index.

Στο βασικό κατάλογο της ιστοσελίδας (basic directory), όπου αναφερόμαστε στον κατάλογο που περιέχει όλα τα αρχεία της ιστοσελίδας, πάντα υπάρχει ένα index αρχείο, είτε έχετε εγκαταστήσει κάποιο CMS είτε είναι κατασκευασμένο από κάποιον για τον συγκεκριμένο σκοπό.

Γιατί να απενεργοποιήσουμε την προσπέλαση των καταλόγων;

Κάπου εδώ θα σχηματιστεί στο μυαλό σας η παραπάνω ερώτηση, “γιατί;”.

Η απάντηση δόθηκε λίγο πιο πάνω: είναι ζήτημα ασφαλείας. Αν το εξετάσουμε σύμφωνα με το παράδειγμα μας, οι κατάλογοι wp-content και wp-includes του WordPress περιέχουν πολύ σημαντικά και ευαίσθητα δεδομένα, που δεν πρέπει να είναι σε κοινή θέα.

Όπως αναφέραμε και πιο πάνω, γίνεται παιχνιδάκι για τους επιτήδειους να μάθουν και να βρουν το πως να καταστρέψουν την ιστοσελίδα μας!

Πως το απενεργοποιούμε

Για να λύσουμε αυτό το πρόβλημα, χρειαζόμαστε πρόσβαση στον βασικό κατάλογο της ιστοσελίδας, είτε μέσω ftp είτε μέσω κάποιου file manager από τα διαχειριστικά cPanel ή Plesk.

Αυτό που μας ενδιαφέρει είναι το αρχείο .htaccess. (Τα παρακάτω λειτουργούν για Apache, NGINX και LiteSpeed)

Αν δεν υπάρχει το αρχείο, τότε η διαδικασία είναι πολύ απλή: δημιουργούμε ένα αρχείο με το παραπάνω όνομα, τοποθετούμε μέσα του την γραμμή Options All -Indexes και το ανεβάζουμε στο βασικό κατάλογο της ιστοσελίδας.

Στην περίπτωση όμως που υπάρχει ήδη το αρχείο, πρέπει να είμαστε πιο προσεκτικοί. Αν ακολουθήσουμε τυφλά την παραπάνω διαδικασία μπορεί να αντικαταστήσουμε το ήδη υπάρχον αρχείο, που είναι ζωτικης σημασίας για ένα CMS και φυσικά για το WordPress, και να καταστρέψουμε την ιστοσελίδα.

Αν λοιπόν υπάρχει ήδη το αρχείο αυτό, θα ακολουθήσουμε την πάγια τακτική των administrators: δημιουργούμε αντίγραφο ασφαλείας – κοινώς backup.

Αφού δημιουργήσουμε το απαραίτητο backup αρχείο, μπορούμε να προβούμε σε αλλαγές. Ανοίξτε το .htaccess με έναν απλό editor (π.χ. Notepad) ή με τον editor που προσφέρει το διαχειριστικό panel, και προχωρήστε στην τελευταία γραμμή του αρχείου.

Εκεί μπορείτε να προσθέσετε την εντολή που είδαμε και πιο πάνω: Options All -Indexes

Σε μια εγκατάσταση του WordPress θα βρεί κανείς το αρχείο αυτό να έχει την παρακάτω μορφή:

Τώρα μπορείτε να αποθηκεύσετε το αρχείο, και είτε να το ανεβάσετε στον βασικό κατάλογο είτε να αφήσετε τον editor του διαχειριστικού panel να κάνει τις αλλαγές.

Αν κάτι πάει στραβά, μπορείτε να αντικαταστήσετε άμεσα το αρχείο αυτό με το backup που κάνατε πιο πριν, βεβαιωθείτε ότι επανήλθαν όλα σε κανονική κατάσταση και δοκιμάστε ξανά (κρατήστε όμως το backup).

Όταν θα έχει γίνει σωστά η αλλαγή, οι κατάλογοι που πριν ήταν προσπελάσιμοι, τώρα θα επιστρέφουν το μήνυμα 403 Access Forbidden ή σε κάποιες περιπτώσεις 404 Page Not Found:

wp-includes 403 Forbidden

Επίλογος

Το directory browsing είναι κάτι που το ξεχνούν τελείως ακόμα και οι webmasters. Άλλωστε είναι κάτι που έχουν απενεργοποιήσει αρκετοί από τους παρόχους.

Δημιουργείται όμως ένα κενό ασφαλείας που μπορεί να κάνει περίπατο την δουλειά ενός επιτήδειου. Το καλό είναι ότι μπορούμε να το διορθώσουμε πολύ εύκολα!

Πηγές

Μοιραστείτε το άρθρο

The following two tabs change content below.
agathan

agathan

Αποφοίτησα απο το τμήμα Εφαρμοσμένων Μαθηματικών του Πανεπιστημίου Κρήτης. Κάτα την διάρκεια εργάστηκα στην τεχνική υποστήριξη του τμήματος. Ακολούθησε το μεταπτυχιακό μου, Msc In Applied Mathematics at University Of Delaware. Ύστερα δούλεψα για μερικά χρόνια σαν web developer (CMS and what not) και SEO/Google Ads engineer.
Και τώρα είμαστε στο GeekD, μια λέξη που περιγράφει όλα τα παραπάνω.

"All we have to decide is what to do with the time that is given us."
-Gandalf The Grey, JRR Tolkien

Αφήστε ένα σχόλιο

Επιλογές της ομάδας
Oumuamua
σκίτσο του Άλμπερτ Αϊνστάιν
Τι θα γινόταν αν ο αυτισμός ήταν ... υπερδύναμη;
Η Σοφία, το πρώτο ρομπότ πολίτης στον κόσμο, δήλωσε ότι θα ήθελε να αποκτήσει οικογένεια
Πώς δημιουργήθηκαν τα μαθηματικά σύμβολα;
NASA: το πείραμα των πανομοιότυπων διδύμων