background image

Κεφάλαιο 3 - Ανάπτυξη και Υλοποίηση της Εφαρμογής 
 

 

 

57 

 

 

3.3.5 Τεχνικές Υλοποίησης των Θεμάτων Ασφάλειας 
 

 

Στα  προηγούμενα  υποκεφάλαια  αναλύσαμε  τους  τρόπους  που  επιτυγχάνουμε  τις 

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

 

Η πρώτη επαφή με την ασφάλεια της σελίδας γίνεται κατά την φόρτωση. Όπως είδαμε 

στο  αρχείο  “loader.php”  καλείται  το  αρχείο  “security.php”  πριν  τους  διαχειριστές 
αλληλεπίδρασης.  Το  “security.php”  λειτουργεί  ως  φίλτρο  επιβεβαιώνοντας  ότι  τα  δεδομένα 
που  αποστέλνονται  στο  εξυπηρετητή  με  την  μέθοδο  POST  δεν  περιέχουν  απειλές  προς  την 
ασφάλεια της εφαρμογής. 

1. 

<?php

 

2. 

 

3. 

$security_breach

 

=

 

false

;

 

4. 

 

5. 

// Sanitize string POST data

 

6. 

$string_array

 

=

 

array

(

'ajax_action'

,

'username'

,

 

[...]);

 

7. 

foreach

(

$string_array

 

as

 

$string_element

){

 

8. 

   if

(

 

isset

(

$_POST

[

$string_element

])

 

){

 

9. 

     $security_temp

 

=

 

filter_var

(

$_POST

[

$string_element

],

 

FILTER_SANI-

TIZE_STRING

);

 

10. 

    if

(

 

$_POST

[

$string_element

]

 

!=

 

$security_temp

 

){

 

11. 

      $security_breach

 

=

 

true

;

 

12. 

    }

 

13. 

  }

 

14. 

}

 

 

Κώδικας 23: security.php - Αρχικοποίηση και έλεγχος γενικών δεδομένων συμβολοσειρών 

Το αρχείο “security.php” αρχικοποιείται με την υπόθεση ότι δεν υπάρχει παραβίαση ασφάλειας 
(Κώδικας 23, γραμμή 3). Έπειτα προχωράμε στην έρευνα αυτής της υπόθεσης ελέγχοντας τα 
πιθανά δεδομένα POST που χρησιμοποιούν οι λειτουργίες μας. Αρχικά ελέγχουμε τα δεδομένα 
γενικής μορφής συμβολοσειρών συγκρατώντας τις πιθανές ονομασίες αυτών σε έναν πίνακα 
και ελέγχοντας την ύπαρξή τους στον πίνακα “$_POST[]” (Κώδικας 23, γραμμές 6-8). Εάν 
εντοπίσουμε  τη  ύπαρξη  τιμής  σε  μία  από  αυτές  τις  θέσεις  του  πίνακα,  επιχειρούμε  την 
απόσταξή της από ένα φίλτρο συγκεκριμένα για τιμές συμβολοσειρών (Κώδικας 23, γραμμή 
9). Χρησιμοποιούμε μία προσωρινή τιμή για το αποτέλεσμα του φίλτρου και ελέγχουμε εάν 
υπάρχουν  αλλαγές  όπου  θα  σημαίνουν  την  αποστολή  μη  έγκυρων  δεδομένων  και  πιθανή 
παραβίαση  ασφάλειας  (Κώδικας  23,  γραμμές  10-11).  Με  παρόμοιο  τρόπο  ελέγχουμε  στην 
συνέχεια τα δεδομένα γενικού τύπου ακέραιων αριθμών όπου χρησιμοποιούμε το αντίστοιχο 
φίλτρο.