background image

71 

 

αποθηκευτεί στη βάση δεδομένων ως “pass”, από τη συνάρτηση hash_equals. Σε περίπτωση 

που  αντιστοιχιστούν  οι  δύο  κωδικοποιήσεις  τότε  η  συνθήκη  θα  γίνει  true  και  η 

αυθεντικοποίηση του χρήστη θα επιτευχθεί με επιτυχία (

Εικόνα 35

)

 

Εικόνα 35 - Η μέθοδος σύγκρισης και αποκρυπτογράφησης του κωδικού πρόσβασης 

3.5.3 Χρήση PDO 

Σε καθημερινή βάση υπάρχει μεγάλος κίνδυνος από επιθέσεις στο  διαδίκτυο.  Έτσι κρίνεται 

σκόπιμο να εφαρμοστούν τεχνικές ασφαλείας που θα προστατεύουν τη βάση δεδομένων του 

πληροφοριακού συστήματος από κάθε είδους επιθέσεις. Μία τεχνική ασφάλειας είναι το PDO 

(PHP  Data  Objects)  [20]  που  προσφέρει  η  γλώσσα  προγραμματισμού  PHP.  Αυτή  η  τεχνική 

είναι  η  πιο  αποτελεσματική  μέθοδος  για  την  αποτροπή  SQL  Injection.  SQL  Injection  είναι 

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

υποκλέπτουν δεδομένα από άλλους χρήστες που δεν είναι εξουσιοδοτημένοι να γνωρίζουν. Για 

τον λόγο αυτό η χρήση του PDO αποτρέπει με επιτυχία τέτοιου είδους επιθέσεις. Παρακάτω 

υπάρχει  ένα  παράδειγμα  από  την  εφαρμογή  του  PDO  στην 

Εικόνα  36

.  Στις  γραμμές  21-25 

τρέχει το SQL ερώτημα (query). Στις γραμμές 27-29 φαίνεται ο έλεγχος των μεταβλητών που 

γίνεται μέσω της «bindValue» που είναι μία τεχνική της PDO για το SQL Injection. Στη γραμμή 

31 γίνεται ο έλεγχος ότι το query είναι σωστό. Σε περίπτωση που είναι μπαίνει μέσα στην if 

αλλιώς μπαίνει μέσα στην else στην γραμμή 39. Στην γραμμή 32 ανασύρουμε δεδομένα από 

το query με την βοήθεια της PDO. Στην γραμμή 33 γίνεται έλεγχος ότι υπάρχουν δεδομένα, 

αλλιώς μπαίνει μέσα στην else στην γραμμή 36.  

 

Εικόνα 36 - Η χρήση του PDO σε ένα SELECT ερώτημα