Τι είναι το hotlinking και γιατί σε αφορά
Hotlinking συμβαίνει όταν μια άλλη ιστοσελίδα βάζει στο δικό της HTML ένα <img src="..."> που δείχνει απευθείας σε αρχείο πάνω στον δικό σου server, αντί να ανεβάσει τη δική της κόπια. Αποτέλεσμα: κάθε φορά που κάποιος επισκέπτης φορτώνει τη ξένη σελίδα, το αρχείο σερβίρεται από τον δικό σου λογαριασμό. Καταναλώνεται bandwidth και δημιουργούνται επιπλέον αιτήματα προς τον web server, τα οποία μπορούν να επιβαρύνουν το I/O και τους διαθέσιμους πόρους του λογαριασμού σου.
Σε ένα semi-dedicated πακέτο, όπου το I/O ανά λογαριασμό έχει ένα καθορισμένο όριο, μια δημοφιλής ξένη σελίδα που φορτώνει τις εικόνες σου χιλιάδες φορές την ημέρα μπορεί να καταναλώνει πόρους που θα χρειαζόταν το δικό σου site, χωρίς να το αντιλαμβάνεσαι.
Πώς εντοπίζεις αν σου συμβαίνει
Ο πιο απλός τρόπος είναι να δεις τα access logs ή τα στατιστικά επισκεψιμότητας του cPanel (π.χ. AWStats). Αν βλέπεις ασυνήθιστα μεγάλο όγκο αιτημάτων για συγκεκριμένα αρχεία εικόνας, με referrer domain που δεν είναι το δικό σου, πρόκειται πιθανότατα για hotlinking. Ένα άλλο σημάδι είναι ασυνήθιστη αύξηση στη χρήση bandwidth ή I/O χωρίς αντίστοιχη αύξηση στην επισκεψιμότητα του ίδιου του site σου, κάτι που μπορείς να το διασταυρώσεις και μέσα από τον έλεγχο χρήσης CPU στο WordPress.
Ενεργοποίηση Hotlink Protection από το cPanel
Η πιο άμεση λύση είναι το εργαλείο Hotlink Protection, που βρίσκεται στην ενότητα Security του cPanel. Η ρύθμιση γίνεται σε λίγα βήματα:
- Άνοιξε το cPanel και πήγαινε στο Security > Hotlink Protection.
- Στο πεδίο των domains, πρόσθεσε το δικό σου domain (και τυχόν subdomains) ώστε να επιτρέπεται η κανονική εμφάνιση των εικόνων στο site σου.
- Όρισε τις επεκτάσεις αρχείων που θέλεις να προστατεύσεις, συνήθως jpg, jpeg, png, gif και webp.
- Επίλεξε αν θα επιτρέπεις «direct requests» (δηλαδή όταν κάποιος ανοίγει απευθείας το URL της εικόνας στον browser του, χωρίς referrer) — συνήθως συμφέρει να το αφήσεις ενεργό, αλλιώς μπλοκάρονται και οι δικοί σου επισκέπτες που ανοίγουν εικόνα σε νέα καρτέλα.
- Όρισε προαιρετικά ένα URL ανακατεύθυνσης για τα μπλοκαρισμένα αιτήματα, π.χ. μια γενική εικόνα «αυτό το περιεχόμενο δεν είναι διαθέσιμο».
- Πάτησε Submit για να ενεργοποιηθεί.
Η εναλλακτική λύση: κανόνες στο .htaccess
Αν προτιμάς χειροκίνητο έλεγχο, μπορείς να προσθέσεις αντίστοιχους κανόνες μέσα στο δικό σου .htaccess:
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://([a-z0-9-]+\.)*example\.gr(?::[0-9]+)?(?:/|$) [NC]
RewriteRule \.(jpg|jpeg|png|gif|webp)$ - [F,NC,L]Η πρώτη γραμμή ενεργοποιεί τους κανόνες rewrite. Η πρώτη συνθήκη RewriteCond επιτρέπει τα αιτήματα χωρίς Referer, αφού η κεφαλίδα HTTP_REFERER είναι προαιρετική και μπορεί επίσης να παραποιηθεί. Η δεύτερη συνθήκη ελέγχει ότι ο Referer ταιριάζει με το δικό σου domain, με ρητό όριο ώστε ένα hostname όπως example.gr.evilsite.com να μην περνάει τον έλεγχο. Όποιο άλλο αίτημα για αρχεία εικόνας δεν ταιριάζει, μπλοκάρεται με κωδικό 403. Η λογική αυτή ακολουθεί και την επίσημη τεκμηρίωση του Apache για hotlink prevention. Αντικατέστησε το «example.gr» με το πραγματικό σου domain πριν το ανεβάσεις.
Πριν αποθηκεύσεις αλλαγές στο .htaccess, κράτα αντίγραφο του αρχείου. Ένας λάθος κανόνας εκεί μπορεί να ρίξει ολόκληρο το site, όπως εξηγείται αναλυτικά στο άρθρο όταν το .htaccess ρίχνει ολόκληρο το site.
Πρόσεχε τα social previews και τους feed readers
Αν μπλοκάρεις εντελώς τα αιτήματα χωρίς referrer ή δεν προσθέσεις εξαιρέσεις, μπορεί να χαλάσουν οι προεπισκοπήσεις εικόνων όταν κάποιος μοιράζεται link σου στο Facebook ή σε άλλο social δίκτυο, αφού ο crawler αυτών των πλατφορμών δεν στέλνει πάντα «κανονικό» referrer. Το ίδιο ισχύει για RSS feeds και για κάποια email clients που εμφανίζουν εικόνες inline. Η ασφαλέστερη προσέγγιση είναι να επιτρέπεις τα κενά referrers, όπως προτείνεται και στο βήμα του cPanel παραπάνω, και να δοκιμάσεις ένα share test μετά την ενεργοποίηση για να βεβαιωθείς ότι όλα εξακολουθούν να λειτουργούν σωστά.
Τι δεν λύνει το Hotlink Protection
Το Hotlink Protection εμποδίζει μόνο την απευθείας φόρτωση αρχείων μέσω tag εικόνας από άλλο domain. Δεν εμποδίζει κάποιον να κατεβάσει την εικόνα και να την ανεβάσει ξανά στον δικό του server, ούτε προστατεύει το κείμενο ή το περιεχόμενο του site σου από αντιγραφή. Για τον έλεγχο του πώς οι μηχανές αναζήτησης και τα bots «βλέπουν» τις σελίδες σου, ένα σχετικό αλλά διαφορετικό θέμα είναι τα λάθη στο robots.txt που κρύβουν το site σου, ενώ για τη γενικότερη εικόνα των πόρων που καταναλώνει ο λογαριασμός σου αξίζει μια ματιά στο τι τρώει τον χώρο στο cPanel.
Στην πράξη, το Hotlink Protection είναι μια μικρή ρύθμιση με άμεσο αποτέλεσμα: κόβει μια αθέατη διαρροή πόρων που πολλοί ιδιοκτήτες site ανακαλύπτουν τυχαία, συνήθως όταν βλέπουν ασυνήθιστη κίνηση σε στατιστικά χωρίς αντίστοιχους επισκέπτες στο ίδιο το site τους.


