Slide 1

Slide 1 text

Πώς να διατηρήσω το WordPress site μου ασφαλές; Βέλτιστες πρακτικές & συμβουλές Larissa WordPress Meetup - Φεβρουάριος 2025

Slide 2

Slide 2 text

Howdy 👋 👦 Ορέστης Σαμαράς 📌 Θεσσαλονίκη 🐘 PHP Developer 💻10+ χρόνια WordPress 💚 Ταξίδια

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

Agenda ❏ Ασφάλεια εγκατάστασης WordPress ❏ Ασφάλεια server ❏ Βέλτιστες πρακτικές ❏ Ερωτήσεις

Slide 5

Slide 5 text

Γιατί να επιτεθεί κάποιος στο site μου; ❏ Οικονομικό όφελος (crypto mining, ransomware, ads, βιομηχανική κατασκοπεία) ❏ Κλοπή δεδομένων & πρόσβαση σε εσωτερικά συστήματα ❏ SEO SPAM / Δυσφήμηση ❏ Παραμόρφωση για Κοινωνικοπολιτικά Αίτια ❏ Κύρος

Slide 6

Slide 6 text

The stats… ❏ 43% όλων των websites παγκοσμίως είναι βασισμένα σε WordPress ❏ 90.000.000 επιθέσεις ημερησίως ❏ 30.000 παραβιασμένα websites ημερησίως ❏ Οι κύριες ευπάθειες ήταν: ❏ Κενά ασφαλείας σε plugins και themes (59%) ❏ Αδύναμοι κωδικοί πρόσβασης (28%) ❏ Μη ασφαλές ή μη ενημερωμένο hosting (13%) (πηγή: sucuri, wpscan, wordfence)

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

Είναι το WordPress ένα ασφαλές CMS;

Slide 9

Slide 9 text

Είναι το WordPress ένα ασφαλές CMS; ❏ Αυστηρά coding standards ❏ Tests ❏ Πολιτική για υπεύθυνη αποκάλυψη ευπαθειών ❏ Αυτόματη εγκατάσταση διορθώσεων ασφαλείας

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

Ασφαλείστε το WordPress

Slide 12

Slide 12 text

Ασφαλείστε το WordPress Κάντε τις ενημερώσεις ❏ Fixes κενών ασφαλείας στις ενημερώσεις ❏ Δημοσιοποίηση ευπαθειών σε changelogs ❏ Αυτοματοποιήστε τις ❏ Dashboard (WP > 5.6) ❏ wp-config.php constants ❏ Φίλτρα auto_update_XXX ❏ Tip! Ελέγξτε τις ενημερώσεις σε ένα staging περιβάλλον

Slide 13

Slide 13 text

Ασφαλείστε το WordPress Θωρακίστε την σελίδα σύνδεσης ❏ Δημοφιλής στόχος για επιθέσεις brute-force ❏ Μπλοκάρετε την πρόσβαση (BasicAuth, plugins, fail2ban, 3rd-party υπηρεσίες) ❏ Χρησιμοποιήστε captcha για να αποφύγετε τα bots ❏ Ενεργοποιήστε Two-Factor Authentication ❏ Κρύψτε την σελίδα σύνδεσης για τον πίνακα ελέγχου

Slide 14

Slide 14 text

Ασφαλείστε το WordPress Χρησιμοποιήστε επιλεγμένα plugins & themes ❏ Κατά την επιλογή ελέγξτε ❏ Συμβατότητα με WP και PHP ❏ Κριτικές ❏ Forum υποστήριξης ❏ Δημιουργός ❏ Χρησιμοποιήστε μόνο ότι χρειάζεστε! ❏ ΜΗΝ χρησιμοποιείτε nulled plugins ή themes

Slide 15

Slide 15 text

Ασφαλείστε το WordPress Χρησιμοποιήστε ένα plugin ασφαλείας ❏ Δεν είναι η λύση για όλα ❏ Χρησιμοποιήστε το συνδυαστικά με άλλα μέτρα που έχετε λάβει ❏ Εάν είναι δυνατόν επενδύστε σε ένα premium plugin

Slide 16

Slide 16 text

Ασφαλείστε το WordPress Παρακολουθήστε για αλλαγές αρχείων ❏ Όταν ένα site παραβιάζεται, αρχεία προστίθενται ή τροποποιούνται για να περιλαμβάνουν τον κακόβουλο κώδικα ❏ Χρησιμοποιήστε το WP CLI, ένα plugin ή υπηρεσία για να παρακολουθείτε τυχόν αλλαγές στα αρχεία της εγκατάστασής σας

Slide 17

Slide 17 text

Ασφαλείστε το WordPress Απενεργοποιήστε την επεξεργασία αρχείων ❏ Επεξεργασία αρχείων από τον πίνακα ελέγχου ❏ Ένας κακόβουλος χρήστης μπορεί να κάνει αλλαγές ❏ Για να την απενεργοποιήσετε, προσθέστε στο wp-config.php ❏ define(‘DISALLOW_FILE_EDIT’, true) ❏ define(‘DISALLOW_FILE_MODS’, true)

Slide 18

Slide 18 text

Ασφαλείστε το WordPress Απενεργοποιήστε την προβολή σφαλμάτων ❏ Ένα σφάλμα μπορεί να εμφανίσει σημαντικές πληροφορίες ❏ Αποκρύψτε τα σφάλματα με: ❏ define(‘WP_DEBUG_DISPLAY’, false) ❏ define(‘WP_DEBUG_LOG’, true) ❏ @ini_set(‘display_errors’, 0)

Slide 19

Slide 19 text

Ασφαλείστε το WordPress Αποτρέψτε την απαρίθμηση χρηστών ❏ Χρησιμοποιώντας πιθανά ID χρηστών, έχουμε λίστα με usernames ❏ https://yoursite.com/?author=1 → https://yoursite.com/author/username ❏ Για να το αποτρέψετε: ❏ Μπλοκάρετε αιτήματα με τη παράμετρο author ❏ Επιτρέψτε την προβολή της λίστας χρηστών του REST API μόνο σε συνδεδεμένους χρήστες ❏ Αφαιρέστε τους χρήστες από το sitemap και από τα embeds ❏ Απενεργοποιήστε τα author archives … ή χρησιμοποιήστε ένα plugin

Slide 20

Slide 20 text

Ασφαλείστε το WordPress Κρύψτε τις συμβουλές σύνδεσης (login hints) ❏ Εμφανίζονται μετά από λάθος προσπάθεια σύνδεσης ❏ Μπορούν να χρησιμοποιηθούν για να προσδιοριστεί η ύπαρξη ενός χρήστη ❏ Αλλάξτε το μήνυμα λάθους με το φίλτρο login_errors … ή χρησιμοποιήστε ένα plugin

Slide 21

Slide 21 text

Ασφαλείστε το WordPress Απενεργοποίηση του XML-RPC ❏ Το XML-RPC επιτρέπει την δημοσίευση περιεχομένου στο site σας από απομακρυσμένα συστήματα ❏ Χρησιμοποιείται για επιθέσεις brute-force και DDoS ❏ Απενεργοποιήστε το ❏ Με το φίλτρο xmlrpc_enabled ❏ Μπλοκάροντας requests μέσω του .htaccess ή του nginx.conf … ή χρησιμοποιώντας ένα plugin

Slide 22

Slide 22 text

Ρυθμίσεις server

Slide 23

Slide 23 text

Ρυθμίσεις του server Backup, backup, backup ❏ Το κακό θα συμβεί! Προετοιμαστείτε ❏ Ωριαία, ημερήσια, εβδομαδιαία ή μηνιαία backups ❏ Αυτοματοποιήστε την δημιουργία των backups - server ή plugin ❏ Διατηρήστε τα backups σε διαφορετικές τοποθεσίες ❏ Tip! Πάντα επαληθεύετε τα backups

Slide 24

Slide 24 text

Ρυθμίσεις του server Χρησιμοποιήστε πιστοποιητικά SSL ❏ Κρυπτογράφηση δεδομένων που μεταφέρονται μεταξύ του server και του browser ❏ Οι πάροχοι hosting συνήθως αναλαμβάνουν την εγκατάσταση των SSL ❏ Βεβαιωθείτε ότι ανακατευθύνετε όλους τους επισκέπτες στην ασφαλή έκδοση ❏ Με οδηγίες στο .htaccess ή στο nginx.conf … ή χρησιμοποιώντας ένα plugin

Slide 25

Slide 25 text

❏ Πάνω από το 50% των εγκαταστάσεων WordPress χρησιμοποιούν μη υποστηριζόμενες εκδόσεις PHP (< 8.1) ❏ Για να αναβαθμίσετε, ελέγξτε τις ρυθμίσεις του server σας ή μιλήστε με τον πάροχο hosting ❏ Tip! Πριν την ενημέρωση, βεβαιωθείτε για την συμβατότητα των εγκατεστημένων επεκτάσεων σε ένα δοκιμαστικό περιβάλλον (πηγή: wordpress.org) Ρυθμίσεις του server Ενημέρωση έκδοσης PHP

Slide 26

Slide 26 text

Ρυθμίσεις του server Ασφαλής μεταφορά αρχείων ❏ SFTP αντί για FTP ❏ Κρυπτογράφηση δεδομένων ❏ Χρησιμοποιεί μία θύρα ❏ Βεβαιώνει την ταυτότητα του παραλήπτη ❏ Εναλλακτικές: scp, rsync, CI/CD pipeline

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

Ρυθμίσεις του server With great power, comes great responsibility ❏ Αλλαγές στις ρυθμίσεις του server ή στο αρχείο .htaccess ή nginx.conf μπορεί να είναι καταστροφικές ❏ Κάντε δοκιμές σε staging ❏ Επικοινωνήστε με τον πάροχο hosting ή απευθυνθείτε σε κάποιον επαγγελματία

Slide 29

Slide 29 text

Βέλτιστες πρακτικές

Slide 30

Slide 30 text

Βέλτιστες πρακτικές Χρήση δυνατών κωδικών πρόσβασης ❏ Δυνατός κωδικός σημαίνει ❏ Τουλάχιστον 8 χαρακτήρες ❏ Συνδυασμός από κεφαλαία και πεζά γράμματα, αριθμούς και σύμβολα ❏ Μοναδικός και τυχαίος ❏ Επιβολή δυνατών κωδικών ❏ Tip! Χρησιμοποιήστε ένα password manager

Slide 31

Slide 31 text

Βέλτιστες πρακτικές Αποφυγή κοινών ονομάτων χρηστών ❏ admin είναι το πιο δημοφιλές όνομα χρήστη ❏ Εάν έχετε ήδη έναν τέτοιο λογαριασμό ❏ Δημιουργήστε έναν νέο λογαριασμό και διαγράψετε τον προηγούμενο ❏ Αλλάξτε το όνομα χρήστη απευθείας από την βάση δεδομένων

Slide 32

Slide 32 text

Βέλτιστες πρακτικές Ανάθεση ρόλων χρηστών ❏ Κάθε χρήστης έχει έναν ρόλο, που καθορίζει τι ενέργειες μπορεί να κάνει ❏ Δώστε στους χρήστες τον ρόλο που αντιστοιχεί στην εργασία τους ❏ Πιο λεπτομερής έλεγχος των ρόλων μπορεί να γίνει με χρήση plugin

Slide 33

Slide 33 text

Αυτόματες ενημερώσεις Κωδικοί πρόσβασης https://shorturl.at/3dTsJ Ασφάλεια server https://shorturl.at/Bi4qw Ασφάλεια custom plugins https://shorturl.at/Ll8UU https://shorturl.at/qtVIC

Slide 34

Slide 34 text

No content