background image

Σχεδιασμός και υλοποίηση συστήματος IoT ασύρματου ελέγχου και μέτρησης ενέργειας 

 

54 

 

Με κάθε αποτυχημένη προσπάθεια σύνδεσης, ο μετρητής των αποτυχιών για την IP 

διεύθυνση  του  χρήστη  αυξάνεται.  Στην  περίπτωση  που  ο  χρήστης  κάνει  πάνω  από  5 
αποτυχημένες προσπάθειες να συνδεθεί, το σύστημα τον αποτρέπει από το να συνεχίσει. 

Αυτό 

γίνεται 

με 

την 

χρήση 

του 

ενδιάμεσου 

λογισμικού 

(middleware) 

‘prevent_brute_force’.  Αν  ο  χρήστης  καταφέρει  να  συνδεθεί  σε  λιγότερες  από  5 
προσπάθειες,  οι  αποτυχημένες  προσπάθειες  επαναφέρονται  στο  0.  Ο  κώδικας  που 
ελέγχει το όριο των προσπαθείων φαίνεται στην Εικόνα 33. Το όριο των προσπαθειών 

σύνδεσης μπορεί να οριστεί και από μια μεταβλητή περιβάλλοντος στο αρχείο .env. 

 

 

Εικόνα 33 : Κώδικας για την αποφυγή επιθέσεων brute force 

 

Η  σταθερά  ‘brute_store’  έχει  τον  ρόλο  μιας  δομής  αποθήκευσης  key-value 

(κλειδιού-τιμής), με το κλειδί να είναι η IP διεύθυνση ενός χρήστης και την τιμή να είναι 
το σύνολο των προσπαθειών σύνδεσης και η στιγμή της τελευταίας προσπάθειας. Όπως 

φαίνεται,  σε  κάθε  κλήση  της  μεθόδου  ‘prevent_brute_force’,  ελέγχεται  αν  κάποιος 
μετρητής έχει λήξει, ώστε να επανέλθει στο 0.  

Σημαντικό  είναι  να  παρατεθεί  και  μια  αναλυτική  λίστα  με  τις  διαθέσιμες 

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

 

/users/register (POST) 

Εγγραφή του χρήστη στο σύστημα. 

Πεδίο 

Τύπος 

Περιγραφή 

email 

Email 

Το email του χρήστη 

password 

String 

Ο κωδικός του χρήστη