Κακόβουλα bots
Σε γενικά πλαίσια, εκτός από bots / crawlers από εταιρίες που έχουν ως σκοπό την χαρτογράφηση της ιστοσελίδας σου (π.χ. Google), υπάρχουν και διάφορα άλλα τα οποία έχουν σαν σκοπό κακόβουλες ενέργειες, όπως κλοπή περιεχομένου, κατακερματισμού του bandwidth, προσθήκης spam σχολίων κ.α.
Εντοπισμός κακόβουλων bots
Αρχικά, θα πρέπει να αναγνωρίσεις τα κακόβουλα bots. Για τον σχετικό έλεγχο, θα πρέπει να ελέγξεις τα αρχεία καταγραφής (logs).
Cpanel
Μέσω του cPanel, μπορείς να κατεβάσεις τα αρχεία καταγραφής από την ενότητα Metrics μέσω της επιλογής Raw Access Logs. Στην ίδια ενότητα μπορείς να δεις και την επιλογή Visitors.
Εναλλακτικά, μπορείς να βρεις τα αρχεία καταγραφής, μέσα στον φάκελο logs στην διαδρομή /home/username/logs.
Plesk
Μέσω του Plesk, μπορείς να τα βρεις μέσα στην επιλογή Logs.
Εναλλακτικά, μπορείς να τα δεις στον φάκελο logs εντός του Home directory.
Μέθοδοι αποκλεισμού
Αφού εντοπίσεις τα κακόβουλα bots, μπορείς να χρησιμοποιήσεις διάφορες μεθόδους για να τα αποκλείσεις, όπως:
- Αποκλεισμός μέσω URI αιτήματος.
- Αποκλεισμός μέσω User-Agent.
- Αποκλεισμός μέσω Referrer.
- Αποκλεισμός μέσω διεύθυνσης IP.
Υποσημείωση
Σε κάθε περίπτωση, οι παρακάτω κανόνες, θα πρέπει να προστεθούν στο επάνω μέρος του αρχείου .htaccess, έτσι ώστε ο Web Server να τους διαβάζει πρώτους.
Αποκλεισμός του URI αιτήματος
Έχεις ελέγξει τα αρχεία καταγραφής και βλέπεις πολλές καταγραφές τύπου:
https://testwebsite.com/malwarebot/request/scan=3545 https://www.testwebsites.eu/4732-malwarebot/request/scan354557
Τα παραπάνω αιτήματα, έχουν πιθανότατα διαφορετικούς agents και διευθύνσεις IP.
Συνεπώς για να προχωρήσεις σε αποκλεισμό των σχετικών αιτημάτων, θα πρέπει να βρεις τα κοινά μοτίβα που έχουν οι παραπάνω καταγραφές.
Κάποια από αυτά είναι τα ακόλουθα:
- malwarebot
- request
- scan
Για να κάνεις τον βέλτιστο αποκλεισμό, θα πρέπει να βρεις το μοτίβο που θα αποκλείσει όλα τα αιτήματα από τα παραπάνω, χωρίς να αποκλείσεις την πρόσβαση κανονικών αιτημάτων.
Συνεπώς και σύμφωνα με τα παραπάνω, εάν επιθυμείς να αποκλείσεις τα αιτήματα που περιέχουν το ‘malwarebot’ και το ‘scan’ μπορείς να προσθέσεις τον παρακάτω κανόνα στο αρχείο .htaccess:
# Apokleismos me Query String <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{QUERY_STRING} (malwarebot|scan) [NC] RewriteRule (.*) - [F,L] </IfModule>
Αποκλεισμός του User-Agent
Από τον έλεγχο στα αρχεία καταγραφής, εντόπισες ότι υπάρχουν κακόβουλα αιτήματα που αναφέρουν στους παρακάτω agents:
- kakovoulobot
- crawlerhacker
- spiderspam
Υποσημείωση
Τα ονόματα των agents είναι τυχαία.
Σύμφωνα με το παραπάνω, μπορείς να αποκλείσεις κατευθείαν την πρόσβαση στους agents, προσθέτοντας τον παρακάτω κανόνα στο αρχείο .htaccess:
# Apokleismos User-Agent SetEnvIfNoCase User-Agent "kakovoulobot" bad_bots SetEnvIfNoCase User-Agent "crawlerhacker" bad_bots SetEnvIfNoCase User-Agent "spiderspam" bad_bots <RequireAll> Require all granted Require not env bad_bots </RequireAll>
Σημείωση
Στον παραπάνω κανόνα, μπορείς να προσθέσεις και άλλους agents, προσθέτοντας το σύμβολο pipe ( | ).
Αποκλεισμός του Referrer
Εάν κατά τον έλεγχό σου, εντοπίσεις ότι τα bots που έχουν στοχοποίηση την ιστοσελίδα σου έχουν κοινό referrer, τότε είναι εύκολο να περιορίσεις την πρόσβασή τους.
Για παράδειγμα, εάν εντοπίσεις από τα αρχεία καταγραφής σου τις παρακάτω εγγραφές από referrers:
Υποσημείωση
Τα ονόματα των referrers είναι τυχαία.
Τότε μπορείς να προχωρήσεις σε προσθήκη του παρακάτω κανόνα στο αρχείο .htaccess:
# Apokleismos Referrer <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_REFERER} ^https://(.*)kakovoulobot\.com [NC,OR] RewriteCond %{HTTP_REFERER} ^https://(.*)crawlerhacker\.eu [NC,OR] RewriteCond %{HTTP_REFERER} ^https://(.*)spiderspam\.org [NC] RewriteRule (.*) - [F,L] </IfModule>
Αποκλεισμός της διεύθυνσης IP
Κατά τον έλεγχο σου μπορεί να εντοπίσεις ότι τα αιτήματα στην ιστοσελίδα σου, γίνονται από συγκεκριμένες IP.
Σε γενικά πλαίσια, η πιθανότητα αυτού είναι πάρα πολύ μικρή, καθώς συνήθως τα συγκεκριμένα αιτήματα, γίνονται από πολλαπλές IP ή ακόμα και από ολόκληρα range IP.
Προειδοποίηση
Πολλά αιτήματα έρχονται από την IP του διακομιστή. Συνεπώς θα πρέπει να προσέξουμε να μην προχωρήσουμε σε περιορισμό της. Ακόμα, η εξαίρεση μεγάλου πλήθους ΙΡ μπορεί να επηρεάσει αρνητικά την απόδοση της ιστοσελίδας σας.
Για παράδειγμα, εάν επιθυμείς να προχωρήσεις σε αποκλεισμό μιας IP, μπορείς να προσθέσεις τον παρακάτω κανόνα στο αρχείο .htaccess:
# Apokleismos dieuthynsis IP <RequireAll> Require all granted Require not ip 192.168.1.1 </RequireAll>
Με τον παραπάνω κανόνα, αποκλείεις την IP 192.168.1.1 (η σχετική IP είναι τυχαία, σε αυτό το τμήμα προσθέτεις την IP που βρήκες στα logs).
Εάν επιθυμείς να προχωρήσεις σε αποκλεισμό πολλαπλών IP, μπορείς να προσθέσεις τον παρακάτω κανόνα στο αρχείο .htaccess:
# Apokleismos IP <RequireAll> Require all granted Require not ip 192.168.1.1 192.168.1.15 192.168.1.128 </RequireAll>
Με τον κανόνα παραπάνω, έχεις αποκλείσει τις IP 192.168.1.1, 192.168.1.15 και 192.168.1.128. Μπορείς να προσθέσεις όσες IP θέλεις σύμφωνα με τον κανόνα.
Σε περίπτωση που θέλεις να αποκλείσεις ολόκληρο IP range, μπορείς να προσθέσεις τον παρακάτω κανόνα στο αρχείο .htaccess:
# Apokleismos range IP <RequireAll> Require all granted Require not ip 192 192.168 192.168.1 </RequireAll>
Σύμφωνα με το παραπάνω:
- Στην αρχή, περιορίζεις όλο το range που ξεκινάει με 192.xxx.xxx.xxx.
- Με την μέση, περιορίζεις όλο το range που ξεκινάει με 192.168.xxx.xxx.
- Στο τέλος, περιορίζεις όλο το range που ξεκινάει με 192.168.1.xxx.
Σε κάθε περίπτωση, από πλευράς μας στους Shared Hosting διακομιστές, υπάρχουν ήδη σχετικοί κανόνες οι οποίοι προστατεύουν από κακόβουλα bot και crawlers την ιστοσελίδα σου.