71
αποθηκευτεί στη βάση δεδομένων ως “pass”, από τη συνάρτηση hash_equals. Σε περίπτωση
που αντιστοιχιστούν οι δύο κωδικοποιήσεις τότε η συνθήκη θα γίνει true και η
αυθεντικοποίηση του χρήστη θα επιτευχθεί με επιτυχία (
).
Εικόνα 35 - Η μέθοδος σύγκρισης και αποκρυπτογράφησης του κωδικού πρόσβασης
3.5.3 Χρήση PDO
Σε καθημερινή βάση υπάρχει μεγάλος κίνδυνος από επιθέσεις στο διαδίκτυο. Έτσι κρίνεται
σκόπιμο να εφαρμοστούν τεχνικές ασφαλείας που θα προστατεύουν τη βάση δεδομένων του
πληροφοριακού συστήματος από κάθε είδους επιθέσεις. Μία τεχνική ασφάλειας είναι το PDO
(PHP Data Objects) [20] που προσφέρει η γλώσσα προγραμματισμού PHP. Αυτή η τεχνική
είναι η πιο αποτελεσματική μέθοδος για την αποτροπή SQL Injection. SQL Injection είναι
ερωτήματα που κάνουν κακόβουλοι χρήστες σε πεδία εισαγωγής δεδομένων με σκοπό να
υποκλέπτουν δεδομένα από άλλους χρήστες που δεν είναι εξουσιοδοτημένοι να γνωρίζουν. Για
τον λόγο αυτό η χρήση του PDO αποτρέπει με επιτυχία τέτοιου είδους επιθέσεις. Παρακάτω
υπάρχει ένα παράδειγμα από την εφαρμογή του PDO στην
. Στις γραμμές 21-25
τρέχει το SQL ερώτημα (query). Στις γραμμές 27-29 φαίνεται ο έλεγχος των μεταβλητών που
γίνεται μέσω της «bindValue» που είναι μία τεχνική της PDO για το SQL Injection. Στη γραμμή
31 γίνεται ο έλεγχος ότι το query είναι σωστό. Σε περίπτωση που είναι μπαίνει μέσα στην if
αλλιώς μπαίνει μέσα στην else στην γραμμή 39. Στην γραμμή 32 ανασύρουμε δεδομένα από
το query με την βοήθεια της PDO. Στην γραμμή 33 γίνεται έλεγχος ότι υπάρχουν δεδομένα,
αλλιώς μπαίνει μέσα στην else στην γραμμή 36.
Εικόνα 36 - Η χρήση του PDO σε ένα SELECT ερώτημα