Επιπλέον ασφάλεια για το WordPress: δικαιώματα, wp-config και .htaccess
Οι ενημερώσεις, ένας ισχυρός κωδικός πρόσβασης και η επαλήθευση δύο βημάτων αποτελούν τη βάση ενός ασφαλούς ιστότοπου WordPress. Η θωράκιση (hardening) έρχεται επιπλέον: ρυθμίζετε τον ιστότοπο έτσι ώστε ένα κενό ασφαλείας ή ένας λογαριασμός που έχει παραβιαστεί να μπορεί να προκαλέσει λιγότερη ζημιά. Εδώ θα διαβάσετε ποιες είναι αυτές οι ρυθμίσεις και πώς τις εφαρμόζετε στο πακέτο hosting σας.
Τι γίνεται ήδη στον server
Ένα μέρος έχει ήδη ρυθμιστεί στους servers μας. Το xmlrpc.php είναι από προεπιλογή κλειστό (WordPress: η πρόσβαση στο xmlrpc.php δεν είναι δυνατή), οι επικίνδυνες συναρτήσεις PHP είναι απενεργοποιημένες (Ασφάλεια PHP: απενεργοποιημένες συναρτήσεις) και λειτουργούν ένα firewall για την κίνηση web και ένα πρόγραμμα σάρωσης για malware. Δείτε Web Application Firewall και Imunify360: σάρωση του ιστότοπού σας για malware. Τα παρακάτω βήματα τα κάνετε εσείς, στον δικό σας ιστότοπο.
Όλα τα αρχεία τα επεξεργάζεστε στο DirectAdmin μέσω του File Manager. Τα αρχεία που ξεκινούν με τελεία, όπως το .htaccess, εμφανίζονται μόνο αν ενεργοποιήσετε την εμφάνιση κρυφών αρχείων: δείτε Εμφάνιση και επεξεργασία κρυφών αρχείων όπως το .htaccess. Δημιουργήστε πρώτα ένα αντίγραφο κάθε αρχείου και τοποθετήστε το εκτός του public_html.
1. Καμία επεξεργασία κώδικα από τη διαχείριση
Ανοίξτε το wp-config.php στο domains/example.com/public_html και τοποθετήστε την παρακάτω γραμμή πάνω από τη γραμμή «σταματήστε την επεξεργασία» (That's all, stop editing!):
define( 'DISALLOW_FILE_EDIT', true );
Οι επεξεργαστές αρχείων θεμάτων και plugins εξαφανίζονται τότε από τη διαχείριση. Όποιος καταλάβει έναν λογαριασμό διαχειριστή δεν μπορεί πλέον να προσθέσει με λίγα κλικ κακόβουλο κώδικα στο θέμα σας. Η εγκατάσταση και η ενημέρωση plugins συνεχίζουν να λειτουργούν κανονικά. Στο ίδιο αρχείο ορίστε το WP_DEBUG σε false, ώστε τα μηνύματα σφάλματος να μην εμφανίζονται ποτέ στην οθόνη των επισκεπτών.
2. Καμία PHP στον φάκελο uploads
Στο wp-content/uploads ανήκουν εικόνες και έγγραφα, όχι PHP. Ένας εισβολέας που μπορεί να ανεβάσει ένα αρχείο μέσω κάποιου κενού ασφαλείας προσπαθεί ακριβώς εκεί να τοποθετήσει ένα αρχείο PHP και να το καλέσει. Δημιουργήστε στο wp-content/uploads ένα αρχείο .htaccess με:
<Files *.php> Require all denied </Files>
Στη συνέχεια ελέγξτε αν ο ιστότοπός σας, οι φόρμες σας και η βιβλιοθήκη πολυμέσων σας λειτουργούν ακόμη.
3. Καμία λίστα φακέλων
Αν σε έναν φάκελο δεν υπάρχει index.php ή index.html, ένας web server μπορεί να εμφανίσει λίστα με όλα τα αρχεία. Τοποθετήστε στην αρχή του .htaccess στο public_html:
Options -Indexes
Για να το ελέγξετε, καλέστε έναν φάκελο χωρίς αρχείο index, για παράδειγμα https://example.com/wp-content/uploads/. Θα πρέπει να δείτε μια σελίδα σφάλματος (403 ή 404), όχι λίστα.
4. Δικαιώματα αρχείων και φακέλων
| Τι | Δικαιώματα |
|---|---|
| Φάκελοι | 755 |
| Αρχεία | 644 |
wp-config.php | Αυστηρότερα: 600 ή 640. Δοκιμάστε 600 και ελέγξτε αν ο ιστότοπός σας λειτουργεί ακόμη. |
Μην χρησιμοποιείτε ποτέ 777: τότε οποιοσδήποτε στον server μπορεί να γράψει σε αυτόν τον φάκελο. Αν κάποιος οδηγός αναφέρει ότι χρειάζεται για να λειτουργήσει το ανέβασμα αρχείων, η αιτία βρίσκεται κάπου αλλού. Αλλαγή δικαιωμάτων: δείτε Δικαιώματα αρχείων και φακέλων (chmod).
5. Κανένα υπόλειμμα στον φάκελο web
Οτιδήποτε βρίσκεται στο public_html μπορεί να ζητηθεί μέσω web. Γι' αυτό καθαρίστε:
- αντίγραφα του
wp-config.php, όπωςwp-config.php.bakήwp-config.old. Αυτά περιέχουν τον κωδικό πρόσβασης της βάσης δεδομένων σας και αποστέλλονται ως απλό κείμενο· - αντίγραφα ασφαλείας όπως
backup.zipήdatabase.sql· - έναν φάκελο
.gitκάποιου προγραμματιστή· - το
wp-content/debug.log· - δοκιμαστικά αρχεία όπως το
info.phpμεphpinfo().
Αν θέλετε να κάνετε ένα μεμονωμένο αρχείο μη προσβάσιμο, δείτε Αποκλεισμός αρχείων μέσω .htaccess.
6. Headers και σύνδεση
- Τα headers ασφαλείας λένε στον browser πώς να χειρίζεται τον ιστότοπό σας. Δείτε HSTS και headers ασφαλείας για τον ιστότοπό σας.
- Τη σελίδα σύνδεσης την περιορίζετε στη δική σας διεύθυνση IP με τον οδηγό Προστασία του wp-login.php του WordPress.
- Επαλήθευση δύο βημάτων για διαχειριστές: δείτε Ρύθμιση επαλήθευσης δύο βημάτων για το WordPress.
Η απόκρυψη της έκδοσης του WordPress είναι τακτοποίηση, όχι ασφάλεια: τα προγράμματα επίθεσης απλώς δοκιμάζουν ένα κενό ασφαλείας. Μόνο η ενημέρωση κλείνει το κενό.
Και ένα plugin ασφαλείας;
Ένα plugin ασφαλείας συχνά συνδυάζει firewall, πρόγραμμα σάρωσης και προστασία σύνδεσης. Ένα firewall σε plugin λειτουργεί μόνο όταν το WordPress εκτελείται ήδη· το firewall στον server σταματά τα αιτήματα νωρίτερα. Ένα plugin είναι επομένως συμπλήρωμα, κυρίως για την επαλήθευση δύο βημάτων και τον περιορισμό των προσπαθειών σύνδεσης. Χρησιμοποιήστε το πολύ ένα: δύο plugins ασφαλείας μαζί συχνά συγκρούονται.
.htaccess ή στο wp-config.php θέτει ολόκληρο τον ιστότοπο εκτός λειτουργίας. Δείτε Σφάλμα 500 ή «κρίσιμο σφάλμα» στον ιστότοπό σας (και μετά από ενημέρωση του WordPress).Περισσότερα
- Hardening WordPress (developer.wordpress.org, στα Αγγλικά)
Θέλετε να μάθετε περισσότερα; Παρακολουθήστε το δωρεάν μάθημα WordPress, ενότητα 7.4 Θωράκιση του ιστότοπου: δικαιώματα, headers και plugins ασφαλείας.
