Προσθήκη ελέγχου στις φόρμες επικοινωνίας: Honeypot


Προσθήκη ελέγχου στις φόρμες επικοινωνίας: Honeypot

Το honeypot στις φόρμες HTML (email) είναι μια τεχνική που χρησιμοποιείται για την αποτροπή της ανεπιθύμητης αλληλογραφίας.

Σύμφωνα με την τεχνική αυτή, γίνεται προσθήκη ενός επιπλέον, κρυμμένου πεδίου στη φόρμα (type hidden), το οποίο δεν πρέπει να συμπληρώσει ο χρήστης. Αυτό το πεδίο προορίζεται να είναι αόρατο στους ανθρώπινους χρήστες (με τη χρήση CSS ή JavaScript), αλλά μπορεί να εντοπιστεί και να συμπληρωθεί από τα spambots που προσπαθούν να συμπληρώσουν κάθε πεδίο της φόρμας. Όταν υποβάλλεται η φόρμα, ο διακομιστής ελέγχει αν αυτό το κρυφό πεδίο περιέχει δεδομένα. Εάν ναι, είναι μια ισχυρή ένδειξη ότι η υποβολή έγινε από spambot, hacker ή άλλο κακόβουλο λογισμικό και η υποβολή της φόρμας σταματάει, χωρίς ο διαχειριστής να λαμβάνει μήνυμα.

Πως εφαρμόζεται το Honey pot

Ακολουθεί ο τρόπος με τον οποίο μπορείτε να υλοποιήσετε ένα πεδίο honeypot σε μια φόρμα HTML και να το επικυρώσετε στην πλευρά του διακομιστή:

Προσθέστε ένα πεδίο Honeypot στη φόρμα HTML σας

Μπορείτε να προσθέσετε ένα κρυφό πεδίο χρησιμοποιώντας CSS για να το κρατήσετε εκτός οπτικού πεδίου για τους ανθρώπινους χρήστες:

<form action="/submit-form" method="POST">
 <label for="name">Όνομα:</label>
 <input type="text" id="name" name="name" required>
 <label for="email">Email:</label>
 <input type="email" id="email" name="email" required>
 <!-- Honeypot field -->
 <div style="display:none;">
  <label for="honeypot">Leave this field empty</label>
  <input type="text" id="honeypot" name="honeypot">
 </div>
 <button type="submit">Submit</button>
</form>

Server-Side Validation

Στην πλευρά του διακομιστή, ελέγξτε αν το πεδίο honeypot έχει συμπληρωθεί. Εάν ναι, αντιμετωπίστε την υποβολή ως spam και απορρίψτε την.
Ακολουθεί ένα παράδειγμα σε PHP:

<?php
 if ($_SERVER["REQUEST_METHOD"] == "POST") {
  $honeypot = $_POST["honeypot"];
  // Ελέγχουμε εάν το honeypot field μας είναι συμπληρωμένο ή όχι
  if (!empty($honeypot)) { //Εάν είναι συμπληρωμένο
   // Τότε το μήνυμα είναι από spambot
   die("Spam detected."); // Σταματάμε τη διαδικασία και εμφανίζουμε μήνυμα
  }
 // Προχωράμε στην επεξεργασία της φόρμας
 $name = $_POST["name"];
 $email = $_POST["email"];
 // Εκτελέστε τη λογική επεξεργασίας της φόρμας σας εδώ
} ?>

Αποτελεσματικότητα των Honeypots

Τα Honeypots είναι γενικά αποτελεσματικά στη μείωση της ανεπιθύμητης αλληλογραφίας από αυτοματοποιημένα bots που δεν επεξεργάζονται CSS και JavaScript. Έχουν εύκολη εφαρμογή και δεν απαιτούν πολύπλοκη ρύθμιση. Δεν επηρεάζουν τη γενικότερη λειτουργία της ιστοσελίδας, ούτε τους χρήστες που θέλουν πραγματικά να στείλουν ένα μήνυμα μέσω της φόρμας επικοινωνίας, μιας και δεν τα βλέπουν.

Προχωρημένα ρομπότ (Spam Bots)

Τα πιο εξελιγμένα bots μπορούν να προγραμματιστούν ώστε να εντοπίζουν και να αποφεύγουν τη συμπλήρωση πεδίων honeypot. Θα πρέπει να χρησιμοποιείται σε συνδυασμό με άλλα μέτρα κατά του spam, όπως το RECAPTCHA της Google, περιορισμός ή και επικύρωση αποστολής μηνύματος στο backend, μέσω του εκάστοτε CMS που χρησιμοποιείτε.

Εν κατακλείδι, τα honeypots μπορούν να αποτελέσουν ένα χρήσιμο εργαλείο για τη μείωση της ανεπιθύμητης αλληλογραφίας από λιγότερο εξελιγμένα bots.

Online υπηρεσίες Honeypot

Υπάρχουν αρκετές διαδικτυακές υπηρεσίες και βιβλιοθήκες που παρέχουν λειτουργίες honeypot για φόρμες, βοηθώντας στη μείωση της ανεπιθύμητης αλληλογραφίας και στη βελτίωση της ασφάλειας. Ακολουθούν μερικές δημοφιλείς από αυτές:

  • mobguards.com
  • Formspree.io
  • Akismet.com
Εταιρία προγραμματισμού "Hexabit Internet Services" 2014 - Με την επιφύλαξη παντώς δικαιώματος Όροι χρήσης Πολιτική απορρήτου Πολιτική Cookies Site Tree W3C Pagespeed AChecker Wave.webaim