background image

Κεφάλαιο 3. Ανάλυση και Σχεδίαση

• Έλεγχος Σύνδεσης. Δεν μπορεί να υπάρξει καμία αλληλεπίδρασή με το σύ-

στημα, εκτός από την Εγγραφή και την Υπενθύμιση Κωδικού, αν ο χρήστης

δεν είναι συνδεδεμένος. Όταν υπάρχει επικοινωνία με το διακομιστή γίνεται

έλεγχος αν ο χρήστης είναι συνδεδεμένος, ώστε να δοθεί η άδεια να έχει πρό-

σβαση στις σελίδες του ιστοχώρου. Επίσης γίνεται και έλεγχος σύνδεσης όταν

κάποιος χρήστης προσπαθεί να συνδεθεί σε σελίδες διαχειριστή, αν δεν έχει

τα κατάλληλα δικαιώματα ανακατευθύνεται.

• Χρήση Κωδικού. Η σύνδεση του χρήστη γίνεται με κωδικό ο οποίος προ-

στατεύεται με διάφορους τρόπους. Αρχικά αποθηκεύεται σε κατακερματι-

σμένη(hash) μορφή και όχι στη μορφή που τον έχει εισάγει ο χρήστης στη

φόρμα επικοινωνίας. Η κατακερμάτηση γίνεται με τη βοήθεια του αλγορίθμου

bcrypt. O bcrypt είναι ένας αλγόριθμος που κάνει τις επιθέσεις brute force

πιο αργές και ελαχιστοποιεί το αντίκτυπο τους. Βασίζεται στον αλγόριθμο

κρυπτογράφησης Blowfish που μέχρι στιγμής δεν έχει καταφέρει κάποιος να

τον αποκρυπτογραφήσει [27]. Αυτός είναι και ο λόγος που επιλέχθηκε για την

παρούσα εργασία. Επίσης, κατά τη σύνδεση στο σύστημα γίνεται επιβεβαίω-

ση του κωδικού που δίνει ο χρήστης αν ταιριάζει με το αποθηκευμένο hash.

Έπειτα, κατά τη δημιουργία ή την αλλαγή του κωδικού πρόσβασης, ο χρή-

στης πρέπει να τον εισάγει δύο φορές. Αυτό γίνεται για την επαλήθευση του

κωδικού, και γίνεται αποδεκτός μόνο όταν είναι ίδιοι. Τέλος, ο κωδικός δεν

μπορεί να είναι μικρότερος από 6 χαρακτήρες, έτσι προσθέτεται ένα επιπλέον

επίπεδο ασφάλειας.

• Φιλτράρισμα Δεδομένων. Τα δεδομένα που εισάγει ο χρήστης, φιλτράρονται

και καθαρίζονται από ανεπιθύμητους χαρακτήρες πριν τοποθετηθούν στη βάση

δεδομένων. Επίσης, επικυρώνονται οι τύποι των μεταβλητών που αποθηκεύουν

τα πεδία της κάθε φόρμας της ιστοσελίδας, το οποίο θεωρείται απαραίτητο

για την αποφυγή εισαγωγής κακόβουλων δεδομένων και την διατήρησή της

ασφάλειας του συστήματος.

• Σύνδεση στη Βάση. Για την σύνδεση και εκτέλεση ερωτημάτων στη βάση δε-

δομένων χρησιμοποιήθηκαν τα Αντικείμενα Δεδομένων PHP (PHP Data Objects,

PDO). Η χρήση PDO είναι μια τεχνική ασφάλειας για τη βάση δεδομένων και

52