Προστασία του site μας από scanner και bots

Αν διαθέτουμε κάποια ιστοσελίδα είναι πολύ πιθανόν ότι κάποια στιγμή κάποιος χρήστης μπορεί να χρησιμοποιήσει κάποιο scanner ή κάποιο bot προκειμένου να προσπαθήσει να ανακαλύψει τις αδυναμίες του site μας.

Το πρόβλημα

Πολλά κακόβουλα bots κρύβονται πίσω από ψεύτικα UA strings και αγνοούν εντελώς το αρχείο robots.txt.Οπότε ακόμα και αν έχουμε μπλοκάρει μερικά μέσω του αρχείου .htaccess κάποια είναι πιθανό να την παρακάμψουν αυτήν την προστασία χρησιμοποιώντας ονόματα από γνήσια user-agent. 

Επίσης ένα scanner ή ένα bot τραβάει από το bandwidth της ιστοσελίδας μας και αυτό μπορεί να έχει σαν επακόλουθο το site μας να αργεί να φορτώσει.

Δημιουργία της παγίδας

Το πρώτο πράγμα που θα πρέπει να κάνουμε είναι να ρυθμίσουμε την παγίδα.Θα δημιουργήσουμε λοιπόν έναν φάκελο με το όνομα trap μέσα στο root.Έτσι όταν ένα bot ή ένα scanner μπει σε αυτόν τον φάκελο η IP του θα γίνει αυτόματα ban.Επίσης αυτό θα συμβεί και για όλους τους χρήστες ή επισκέπτες της ιστοσελίδας που θα προσπαθήσουν να μπούνε σε αυτόν τον φάκελο.

Θα πρέπει επίσης να σιγουρευτούμε ότι δεν θα μπανάρουμε τα γνήσια bots όπως το Googlebot,Yahoobot κτλ.Μπορούμε να το αποφύγουμε αυτό το σενάριο απλά προσθέτοντας το παρακάτω στο αρχείο robots.txt:

User-agent: *

Disallow: /trap/

Τα περισσότερα bots θα υπακούσουν σε αυτήν την ρύθμιση και δεν θα μπούνε στον φάκελο trap. 

Το επόμενο βήμα είναι να δημιουργήσουμε το αρχείο index.php μέσα στον φάκελο με το όνομα trap και να προσθέσουμε το ακόλουθο:

<?php
$agent = $_SERVER[‘$HTTP_USER_AGENT’];
$datum = date(«Y-m-d (D) H:i:s»,$tmestamp);
$ipad = $_SERVER[‘REMOTE_ADDR’];
$ban = «Deny from $ipad # /trap/ $agent – on $datum \r\n»;
$file = «../.htaccess»;
$search = file_get_contents($file);
$check = strpos($search, $ipad);
if ($check === FALSE) {
$open = @fopen($file, «a+»);
$write = @fputs($open, $ban);
    echo «The IP <b>».$ipad.»</b> has been blocked for an invalid access attempt to a file, directory, or a scanning atempt.;
@fclose($open);
} else {
    echo «The IP <b>».$ipad.»</b> has been blocked for an invalid access attempt to a file, directory, or a scanning atempt.»;
}
exit;
?>

Σημείωση:

$ban—>Ότι θα γραφτεί στο αρχείο .htaccess.Οτιδήποτε μετά τo σύμβολο # είναι σχόλιο.Επίσης το αρχείο .htaccess θα πρέπει να έχει δικαιώματα 666.

$file—->Βάζουμε την διαδρομή που βρίσκεται η παγίδα μας 

Ενεργοποίηση της παγίδας

Τώρα που το σύστημα είναι τοποθετημένο θα πρέπει να ρυθμίσουμε το δόλωμα για τα bots.Τοποθετούμε λοιπόν τον παρακάτω κώδικα μέσα στο αρχείο index στον φάκελο root.

<a href=»/trap/»><img src=»images/pix.JPG» border=»0″ alt=» » width=»1″ height=»1″></a>

Όταν ένα scanner ή ένα bot μπεί στην αρχική σελίδα μας θα εντοπίσει το παραπάνω link και θα κατευθυνθεί προς αυτό όπου και θα γίνει ban η IP του.

Αποτέλεσμα:

Το αποτέλεσμα αυτής της παγίδας όταν κάποιο bot ή scanner εισέλθει στον φάκελο trap θα είναι το ακόλουθο:

Deny from ***.***.***.***,# /admin/ – on 2009-08-20 (Wed) 16:00:00

Advertisements

Ένα Σχόλιο to “Προστασία του site μας από scanner και bots”

  1. Επίσης αν κάποια στιγμή γεμίσει το .htaccess με IP απο banned bots μπορούμε να μεταφέρουμε την λίστα με τα IP στο httpd.conf για καλύτερο performance.

Σχολιάστε

Εισάγετε τα παρακάτω στοιχεία ή επιλέξτε ένα εικονίδιο για να συνδεθείτε:

Λογότυπο WordPress.com

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό WordPress.com. Αποσύνδεση / Αλλαγή )

Φωτογραφία Twitter

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Twitter. Αποσύνδεση / Αλλαγή )

Φωτογραφία Facebook

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Facebook. Αποσύνδεση / Αλλαγή )

Φωτογραφία Google+

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Google+. Αποσύνδεση / Αλλαγή )

Σύνδεση με %s

Αρέσει σε %d bloggers: