background image

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

 

 

58 

 

1. 

if

(

 

isset

(

$_POST

[

'selected_ids'

])

 

){

 

2. 

   $selected

 

=

 

explode

(

'-'

,

$_POST

[

'selected_ids'

]);

 

3. 

   foreach

 

(

$selected

 

as

 

$file_id

)

 

{

 

4. 

     $file_id_sanitized

 

=

 

filter_var

(

$file_id

,

 

FILTER_SANITIZE_NUM-

BER_INT

);

 

5. 

     if

(

$file_id_sanitized

 

!=

 

$file_id

){

 

6. 

       $security_breach

 

=

 

true

;

 

7. 

     }

       

 

8. 

   }

 

9. 

}

 

10. 

if

(

 

isset

(

$_POST

[

'email_edit'

]))

 

{

 

11. 

  $security_temp

 

=

  

filter_var

(

$_POST

[

"email_edit"

],

 

FILTER_VALI-

DATE_EMAIL

);

 

12. 

  if

(

 

$_POST

[

'email_edit'

]

 

!=

 

$security_temp 

||

 

strlen

$_POST

[

"email_edit"

]) >

50 

){

 

13. 

    $security_breach

 

=

 

true

;

 

14. 

    array_push

(

$_SESSION

[

'vhdl_msg'

],

 

'invalid_mail'

);

 

15. 

  }

 

16. 

}

 

 

Κώδικας 24: security.php - Έλεγχος ασφάλειας για τα δεδομένα selected_ids και email_edit 

Υπάρχουν όμως περιπτώσεις όπου οι τιμές των δεδομένων δεν ακολουθούν γενικές μορφές 
αλλά  έχουν  συγκεκριμένη  μορφοποίηση.  Τέτοιες  περιπτώσεις  είναι  για  παράδειγμα  τα 
δεδομένα “selected_ids” και “email_edit”. Στην πρώτη περίπτωση τα δεδομένα αποτελούνται 
από  ακέραιους  αριθμούς  χωρισμένα  με  παύλες. Έτσι  επιχειρούμε  πρώτα  την  διάσπαση  των 
αριθμών  και  προχωρούμε  μετά  σε  ξεχωριστό  έλεγχο  για  τον  καθένα  με  τον  τρόπο  που 
ελέγχουμε  την  γενική  μορφή  ακέραιων  αριθμών  (Κώδικας  24,  γραμμές  1-9).  Στην  δεύτερη 
περίπτωση  έχουμε  τον  επιπλέον  περιορισμό  των  πενήντα  χαρακτήρων.  Η  εξέταση  των 
δεδομένων  γίνεται  όπως  τις  γενικής  μορφής  συμβολοσειρών  με  την  προσθήκη  ελέγχου  του 
αριθμού  χαρακτήρων  όπου  εάν  το  επιτρεπόμενο  μέγεθος  ξεπεραστεί,  θεωρείτε  παραβίαση 
ασφάλειας (Κώδικας 24, γραμμές 10-16). 

1. 

if

(

 

$security_breach

 

){

 

2. 

  array_push

(

$_SESSION

[

'vhdl_msg'

],

 

'invalid_POST'

);

 

3. 

  header

(

"Refresh:0"

);

 

4. 

  exit

();

 

5. 

}

 

 

Κώδικας 25: security.php - Αντιμετώπιση πιθανής παραβίασης ασφάλειας 

Αφού ολοκληρώσουμε όλους του ελέγχους, προχωρούμε στην εξέταση της αρχικής υπόθεσης. 
Σε  περίπτωση  που  δεν  έχει  βρεθεί  κάποια  πιθανή  παραβίαση  ασφάλειας,  επιτρέπουμε  την 
συνέχεια  της  ροής  εκτέλεσης  κανονικά.  Αλλιώς  δημιουργούμε μήνυμα  ανάδρασης  ώστε  να 
ενημερώσουμε τον χρήστη, προχωρούμε στην επαναφόρτωση της σελίδας και σταματάμε την 
εκτέλεση σεναρίων PHP (Κώδικας 25, γραμμές 1-5). Έτσι ολοκληρώνεται το πρώτο επίπεδο 
ασφάλειας που στοχεύει στην αντιμετώπιση αποστολής μη επιτρεπόμενων τύπων δεδομένων 
στον εξυπηρετητή. 

 

Το δεύτερο επίπεδο ασφάλεια βρίσκεται κατά τις αλληλεπιδράσεις της εφαρμογής με 

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