15 βήματα για να αυξήσεις την ασφάλεια ενός WordPress site

21 Ιουλίου 2020, από

WordPress Ασφάλεια

Καθώς το WordPress πλέον χρησιμοποιείται από περίπου το 30% των ιστοσελίδων που υπάρχουν online είναι πολύ λογικό να έχει γίνει στόχος των hackers με αποτέλεσμα να υπάρχουν πολλά περιστατικά παραβιάσεων. Αυτό, ωστόσο, δε σημαίνει ότι το WordPress site σου είναι ευάλωτο και δεν υπάρχουν τρόποι να αυξήσεις την ασφάλεια του.

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

Ξεκινώντας από τα βασικά

Παρακάτω μπορείς να βρεις κάποια βασικά βήματα τα οποία μπορείς να κάνεις χωρίς να έχεις προγραμματιστική εμπειρία.

1. Αναβάθμισε το WordPress, τα plugins και το theme στην τελευταία τους έκδοση

Ένας από τους πιο συχνούς λόγους παραβίασης μιας ιστοσελίδας WordPress είναι μια μη αναβαθμισμένη εγκατάσταση. Διατηρώντας την εγκατάσταση σου σε παλαιότερες εκδόσεις, την αφήνεις ευάλωτη σε ευπάθειες που οι hackers γνωρίζουν και η κοινότητα τις έχει διορθώσει (στις επόμενες εκδόσεις). Θα πρέπει πάντα το WordPress, τα plugins και το theme σου να είναι αναβαθμισμένα στην τελευταία τους έκδοση.

Σε περίπτωση που θέλεις να ενεργοποιήσεις τις αυτόματες αναβαθμίσεις για το WordPress μπορείς να προσθέσεις τα παρακάτω στο αρχείο wp-config.php

define( ‘WP_AUTO_UPDATE_CORE’, true );

Αν φιλοξενείς την ιστοσελίδα σου στην Top.Host και το control panel σου είναι το Plesk, μπορείς να ενεργοποιήσεις τις αυτόματες αναβαθμίσεις για το σύνολο της εγκατάστασης μέσα από το WordPress Toolkit της Plesk.

Θα πρέπει να θυμάσαι πάντα να αναβαθμίζεις τα plugins ή τα themes τα οποία έχεις αγοράσει και δεν υποστηρίζουν αυτόματες αναβαθμίσεις ή την διαδικασία της αναβάθμισης μέσα από το Dashboard του WordPress.

2. Αφαίρεσε τα plugins και τα themes που δεν χρησιμοποιείς

Με την πάροδο του χρόνου, η εγκατάστασή σου χρειάζεται καθάρισμα. Καθώς συσσωρεύονται θέματα και plugins, πρέπει να διαγράψεις αυτά που δεν χρησιμοποιείς πλέον. Η απαλλαγή από τα περιττά plugins είναι πιθανό να κάνει τον ιστότοπό σου να τρέχει γρηγορότερα, καθώς και να απομακρύνει τρωτά σημεία ασφαλείας από τα στάσιμα ή τα ξεπερασμένα πρόσθετα.

3. Αντικατάστησε τα plugins και τα οποία έχουν σταματήσει να αναβαθμίζονται

Κάποιο theme ή plugin μπορεί να έχει σταματήσει να αναβαθμίζεται από τον δημιουργό του για μήνες ίσως και χρόνια. Θα πρέπει λοιπόν να σκεφτείς σοβαρά το ενδεχόμενο αντικατάστασης του γιατί μπορεί να προκαλέσει προβλήματα συμβατότητας και κενά ασφαλείας.

Μπορείς να ελέγξεις αν στην εγκατάσταση σου υπάρχουν plugins ή themes με γνωστά κενά ασφαλείας χρησιμοποιώντας κάποιο εργαλείο όπως το WPScan.

4. Χρησιμοποίησε μόνο ισχυρούς κωδικούς

Όλοι μας πολλές φορές ορίζουμε κωδικούς οι οποίοι είναι αρκετά απλοί ώστε να τους θυμόμαστε εύκολα. Συχνά, βασίζονται σε ημερομηνίες γέννησης, στο username μας ή ακόμα και στο όνομα μας. Έτσι διευκολύνουμε τους hackers να βρουν τον κωδικό μας με κάποιο αυτοματοποιημένο script δοκιμάζοντας τις εναλλακτικές.

Παρακάτω, ενδεικτικά αναφέρουμε πόσο χρόνο θέλει να βρει ένα κακόβουλο αυτοματοποιημένο script ένα κωδικό που βασίζεται μόνο σε χαρακτήρες σε σχέση με το πλήθος τον χαρακτήρων.

7 χαρακτήρες – 0,3 ms
8 χαρακτήρες – 5 h
9 χαρακτήρες – 5 d
10 χαρακτήρες – 5 months
11 χαρακτήρες – 1 decade
12 χαρακτήρες – 2 centuries

Οι χρόνοι αυτοί αυξάνονται κατά πολύ όταν χρησιμοποιείς στους κωδικούς και αριθμούς αλλά και special characters.

Δοκίμασε κάποιο εργαλείο δημιουργίας κωδικών και ασφαλούς αποθήκευσης όπως το 1Password. Έτσι, δεν θα χρειάζεται να επιλέγεις εύκολους κωδικούς και να τους ανακαλείς.

Επίσης, ένα επιπλέον μέτρο ασφαλείας που θα μπορούσες να χρησιμοποιήσεις για να αποτρέψεις την παραβίαση του διαχειριστικού σου είναι το two-factor authentication (2FA) με κάποιο plugin όπως το Google Authenticator.

5. Άλλαξε ή αφαίρεσε το default ‘admin’ username

Με την default εγκατάσταση, το WordPress δημιουργεί τον αρχικό λογαριασμό διαχειριστή δίνοντας του το username admin. Η διατήρηση αυτού του username, αποτελεί σημαντικό κενό ασφαλείας, γιατί οι hackers γνωρίζουν ήδη την μισή πληροφορία και πρέπει μετά να βρουν τον κωδικό μόνο. Αν επιλέξεις ένα username δικό σου, είναι δυσκολότερο να το βρουν.

Θα μπορούσες λοιπόν είτε να δημιουργήσεις ένα καινούργιο χρήστη με δικαιώματα διαχειριστή και να διαγράψεις αυτόν με το username admin είτε να τροποποιήσεις τον υπάρχων αλλάζοντας το username.

Σε περίπτωση που φιλοξενείς την ιστοσελίδα σου στην Top.Host και το control panel σου είναι το Plesk, μπορείς πολύ εύκολα να κάνεις την παραπάνω ρύθμιση μέσα από WP Toolkit.

6. Limit Login Attempts

To WordPress από μόνο του δεν έχει κάποιο μηχανισμό που να μπλοκάρεται, προσωρινά ή μόνιμα, μια IP από την οποία γίνονται πολλές προσπάθειες σύνδεσης με λάθος στοιχεία. Έτσι, επίμονοι hackers μπορούν να προσπαθούν επ’ άπειρον συνδυασμούς μέχρι να βρουν τον σωστό κωδικό και να αποκτήσουν πρόσβαση.

Κάποιο plugin όπως το Login LockDown, μπορεί να το κάνει όμως και να σε προστατέψει.

Στους server της Top.Host, ο συγκεκριμένος περιορισμός υπάρχει ήδη σε επίπεδο server από το Web Application Firewall οπότε η προσθήκη επιπλέον plugin δεν είναι απαραίτητη.

7. Αλλαγή του URL εισόδου στο διαχειριστικό

Αλλάζοντας το default URL εισόδου στο διαχειριστικό κάνεις ένα δραστικό βήμα για να αποτρέψεις προσπάθειες παραβίασης της εγκατάστασης σου καθώς όποιος επισκέπτεται το domain.com/wp-login.php θα λαμβάνει error 404 και όχι την φόρμα εισόδου.

Το παραπάνω μπορείς να το πετύχεις με κάποιο plugin όπως το WPS Hide Login.

8. Απενεργοποίηση Trackbacks και Pingbacks

Υπάρχουν δύο τουλάχιστον σοβαροί λόγοι για τους οποίους θα πρέπει να εξετάσεις το ενδεχόμενο να απενεργοποιήσεις τα trackbacks και τα pingbacks: μπορούν να οδηγήσουν σε ανεπιθύμητα σχόλια και μπορούν να χρησιμοποιηθούν σε ένα συντονισμένο DDoS attack.

Εάν δεν χρησιμοποιείς trackbacks και pingbacks στην ιστοσελίδα σου, απενεργοποίησε τα. Από τις σχετικές επιλογές Ρυθμίσεις> Συζήτηση.

9. Χρήση SSL

Η ενεργοποίηση του SSL είναι κρίσιμο βήμα για έναν ασφαλέστερο ιστότοπο. Το SSL (Secure Sockets Layer) κρυπτογραφεί όλες τις πληροφορίες που αποστέλλονται από και προς τον ιστότοπό σου. Με αυτόν τον τρόπο οι επισκέπτες των ιδιωτικών δεδομένων που μοιράζονται με τον ιστότοπό σου παραμένουν ιδιωτικοί.

Η χρήση του SSL διασφαλίζει ότι οι hacker δεν μπορούν να δουν ή να παρεμποδίσουν τα δεδομένα που οι χρήστες σου μοιράζονται στον ιστότοπό σου. Η ασφαλής σήραγγα που δημιουργείται από το SSL είναι ιδιαίτερα σημαντική με ευαίσθητες πληροφορίες, όπως αριθμούς πιστωτικών καρτών, ονόματα χρηστών και κωδικοί πρόσβασης.

Ο προσδιορισμός του εάν ένας ιστότοπος είναι πιστοποιημένος με SSL είναι απλός. Μια τοποθεσία πιστοποιημένη με SSL θα ξεκινήσει με μια διεύθυνση HTTPS στη διεύθυνση URL, ενώ ένας ιστότοπος που δεν είναι πιστοποιημένος με SSL θα ξεκινήσει με HTTP.

Προχωρώντας περισσότερο

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

10. Απόκρυψη της έκδοσης του WordPress

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

Το WordPress κάνει γνωστή την έκδοση της εγκατάστασης σε 3 σημεία και μπορείς να την αφαιρέσεις προσθέτοντας τον παρακάτω κώδικα στο functions.php του theme σου.

/* Hide WP version strings from scripts and styles
* @return {string} $src
* @filter script_loader_src
* @filter style_loader_src
*/
function remove_wp_version_strings( $src ) {
global $wp_version;
parse_str(parse_url($src, PHP_URL_QUERY), $query);
if ( !empty($query[‘ver’]) && $query[‘ver’] === $wp_version ) {
$src = remove_query_arg(‘ver’, $src);
}
return $src;
}
add_filter( ‘script_loader_src’, ‘remove_wp_version_strings’ );
add_filter( ‘style_loader_src’, ‘remove_wp_version_strings’ );

/* Hide WP version strings from generator meta tag */
function remove_metatag_version() {
return ”;
}
add_filter(‘the_generator’, ‘remove_metatag_version’);

Επίσης, πρέπει επιβεβαιώσεις ότι έχεις αφαιρέσει το αρχείο readme.html από τον κεντρικό φάκελο της εγκατάσταση σου, καθώς εμπεριέχει την έκδοση του WordPress.

11. Προστασία του wp-config.php

Το αρχείο wp-config.php περιέχει ευαίσθητες πληροφορίες για τις ρυθμίσεις της εγκατάστασης . Για να του παρέχεις περισσότερη προστασία θα μπορούσες να προσθέσεις τον παρακάτω κανόνα στο αρχείο .htaccess.

<files wp-config.php>
order allow,deny
deny from all
</files>

Σε περίπτωση που φιλοξενείς την ιστοσελίδα σου στην Top.Host και το control panel σου είναι το Plesk μπορείς πολύ εύκολα να κάνεις την παραπάνω ρύθμιση μέσα από WP Toolkit.

12. Χρήση μοναδικού database prefix

Κατά την εγκατάσταση το WordPress, έχεις το δικαίωμα να ορίσεις το database prefix και το default είναι wp_. Έτσι ένας τρόπος να προφυλαξεις την βάση σου λίγο παραπάνω είναι να αλλάξεις το default prefix με κάτι μοναδικό.

Και σε αυτή την περίπτωση, αν φιλοξενείς την ιστοσελίδα σου στην Top.Host και το control panel σου είναι το Plesk μπορείς πολύ εύκολα να κάνεις την παραπάνω ρύθμιση μέσα από WP Toolkit.

13. Απενεργοποίηση εκτέλεσης PHP

Τα themes και τα plugins επιτρέπουν το upload αρχείων και αν υπάρχει κάποιο κενό ασφαλείας μπορεί οι hackers να ανεβάσουν κάποιο αρχείο PHP και μετά να το εκτελέσουν και έτσι να κάνουν τροποποιήσεις στον κώδικα ή στην βάση σου.

Για τον περιορισμό των παραπάνω, μπορείς να απενεργοποιήσεις την εκτέλεση PHP αρχείων στους φακέλους wp-content/cache και wp-content/uploads δημιουργώντας ένα αρχείο .htaccess σε αυτούς τους φακέλους με τον κανόνα

<Files *.php>deny from all</Files>

Αν φιλοξενείς την ιστοσελίδα σου σε εμάς και το control panel σου είναι το Plesk μπορείς πολύ εύκολα να κάνεις την παραπάνω ρύθμιση μέσα από WP Toolkit.

14. Απενεργοποίηση directory browsing

Σε περίπτωση που το directory browsing είναι ενεργοποιημένο σε επίπεδο server σημαίνει πως οι hackers μπορούν να δουν τα περιεχόμενα ενός φακέλου από τον browser. Έτσι, εντοπίζουν τυχόν αρχεία με ευπάθειες και μπορεί να το εκμεταλλευτούν. Μπορείς να απενεργοποιήσεις το directory browsing προσθέτοντας τον παρακάτω κανόνα στο κεντρικό .htaccess της εγκατάστασης σου.

Options -Indexes

Η συγκεκριμένη ρύθμιση ασφαλείας υπάρχει κεντρικά σε όλους του server μας οπότε σε περίπτωση που έχεις hosting σε εμάς δεν υπάρχει λόγος να κάνεις επιπλέον ενέργειες.

15. Απενεργοποίηση επεξεργασίας αρχείων PHP από το διαχειριστικό

Σε περίπτωση που κάποιος εκτός από εσένα έχει πρόσβαση στο διαχειριστικό της εγκατάστασης μπορεί πολύ εύκολα να τροποποιήσει τα αρχεία των plugins και των themes με βάση την δυνατότητα που παρέχει το WordPress. Αν θέλεις να απενεργοποιήσεις την συγκεκριμένη δυνατότητα θα μπορούσες να προσθέσεις το παρακάτω στο αρχείο wp-config.php της εγκατάσταση σου.

define( ‘DISALLOW_FILE_EDIT’, true );

Σε περίπτωση που φιλοξενείς την ιστοσελίδα σου σε εμάς και το control panel σου είναι το Plesk μπορείς πολύ εύκολα να κάνεις την παραπάνω ρύθμιση μέσα από WP Toolkit.

Καλή επιτυχία!

Ετικέτες

Σου άρεσε αυτό το blog post;

Τότε σίγουρα θα λατρέψεις τα επόμενα! Συμπλήρωσε το email σου για να μη χάσεις ούτε ένα.;

Κάνε δωρεάν την εγγραφή σου και στο εξής θα λαμβάνεις ενημερώσεις για τα νέα post του Τοp.Host Blog. Οποιαδήποτε στιγμή θελήσεις μπορείς να αφαιρέσεις το email σου από τη λίστα παραληπτών. Μάθε περισσότερα στην Πολιτική Απορρήτου.

Μπες στη συζήτηση

Πες μας τη γνώμη σου!