Το WordPress επιτρέπει να μετακινήσεις ένα επίπεδο πάνω το wp-config.php έτσι ώστε να αποκρύψεις το σημαντικό περιεχόμενο του αρχείου, προσθέτοντας ένα επιπλέον layer ασφάλειας.
H μετακίνηση του wp-config αρχείου εκτός του document root είναι μια πολύ εύκολη και γρήγορη διαδικασία. Εξυπηρετεί έτσι ώστε να αποκρύψεις τα σημαντικά στοιχεία της wordpress εγκατάστασης σου από πιθανές κακόβουλες ενέργειες.
Το wp-config.php είναι ένα πολύ σημαντικό αρχείο σε μια wordpress ιστοσελίδα, καθώς περιέχει τα στοιχεία σύνδεσης με την βάση δεδομένων και τα authentication/salt κλειδιά του ιστότοπου.
Μέσα στο document_root της κάθε wordpress εγκατάστασης θα βρούμε το wp-config.php.
Document_root είναι ο φάκελος όπου περιέχει τα αρχεία/φακέλους της ιστοσελίδας μας.
Σε περιβάλλον plesk ονομάζεται httpdocs.
Σε περιβάλλον cPanel ονομάζεται public_html.
Σε κάποια άλλα controlpanels ίσως το δούμε ως webroot.
Σε αυτό το άρθρο θα χρησιμοποιήσουμε την ονομασία httpdocs.
Ο httpdocs φάκελος είναι ο top-level φάκελος όπου μπορεί να δεί ο system_user ενός domain μέσω ssh ή FTP.
Αν προσπαθήσουμε να ανέβουμε ένα επίπεδο πάνω, δεν επιτρέπεται.
Μόνο από τον filemanager του controlpanel μπορούμε να δούμε τους υπόλοιπους φακέλους.
Συνήθως το wp-config αρχείο δεν είναι προσβάσιμο από τους web browsers. Τα PHP αρχεία είναι scripts, και ένας browser “εκτυπώνει” μόνο το αποτέλεσμα ενός script σε μορφή HTML.
Μια περίπτωση είναι, ένας webserver για κάποιο λόγο να σταματήσει να εκτελεί την PHP και να τυπώνει τα περιεχόμενα ενός php αρχείου σε μορφή text και να μπορούν να διαβαστούν από τον οποιοδήποτε.
Μια άλλη περίπτωση (πιο συνηθισμένη) είναι να ανέβει ένα κακόβουλο αρχείο μέσα στα αρχεία του wordpress και να μπορέσει να διαβάσει τα περιεχόμενα του wp-config.php
Σε ένα άρθρο της, η Wordfence, το 2020 αναφέρει για μια μεγάλη κλίμακας καμπάνια από κακόβουλες ενέργειες με σκοπό να βρούν ευπαθή wordpress και να συλλεχτούν στοίχεια πρόσβασης βάσης δεδομένων.
Οι περισσότερες από αυτές τις ενέργειες είναι αυτοματοποιημένες και στοχεύουν τα default system_path των wordpress σελίδων όπως httpdocs/wp-config.php
Οπότε η λογική μετακίνησης του wp-config.php σε άλλο σημείο έχει ένα νόημα.
Το wordpress σου επιτρέπει απλά να μετακινήσεις το wp-config χωρίς να απαιτείται παραμετροποίηση στο wordpress core.
Αν απλά κάνεις copy το wp-config.php χωρίς να το μετονομάσεις και χωρίς να το βάλεις σε φάκελο, το wordpress το καταλαβαίνει αυτόματα. Δεν απαιτείται καμμία άλλη ενέργεια.
Ωστόσο αν θέλουμε να το κάνουμε λίγο πιο δύσκολο, ακολουθούμε τα παρακάτω βήματα.
– Φτιάχνουμε έναν φάκελο μέσω του controlpanel filemanager με μια τυχαία ονομασία.
Κάνουμε copy το wp-config.php μέσα σε αυτόν τον φάκελο.
Το μετονομάζουμε σε κάτι άλλο, μια τυχαία ονομασία πχ qwerasdv.php
Κάνουμε edit το httpdocs/wp-config.php και τοποθετούμε το παρακάτω :
<?php
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
require_once(ABSPATH . '../tsoukou/qwerasdv.php');
Αντικατέστησε τον φάκελο tsoukou και qwerasdv.php με τις δικές σου ονομασίες.
Η διαδικασία έχει ολοκληρωθεί.
To wp-config.php σου είναι πλέον ασφαλές από πρόσβαση κακόβουλων ενεργειών.
Όχι απόλυτα. Ας υποθέσουμε στην περίπτωση όπου διαθέτουμε hosting υπηρεσία σε shared hosting περιβάλλον. Αν περαστεί ένα update patch από το controlpanel, το πιο πιθανό είναι τα read/write permissions των αρχείων να γίνουν reset.
Ναι. Τα salt/authentication κλειδιά αν γνωστοποιηθούν θα χρησιμοποιηθούν σε κακόβουλες ενέργειες.