Χαντζής Δημήτριος Επιβλέπων Καθηγητής: Σιδηρόπουλος Αντώνιος Διαδικτυακή Εφαρμογή για Διαχείριση Συνεδρίων
Περιγραφή Συστήματος Σύστημα Διαχείρισης Συνεδρίων με όνομα: PaperReview. Στόχοι συστήματος: o συλλογή o αξιολόγηση o επιλογή επιστημονικών διατριβών για δημοσίευση σε συνέδρια. Υποστηρίζεται η διεξαγωγή πολλών συνεδρίων ταυτόχρονα.
Χρήστες Συστήματος Τρεις ρόλοι χρηστών : o Chairman o Reviewer o Author και ο system administrator. Κάθε ρόλος έχει διαφορετικά προνόμια στο συνέδριο. Οι χρήστες είναι δυνατόν να έχουν και τους τρεις ρόλους στο ίδιο συνέδριο.
Χρήστες Συστήματος (συνέχεια) Chairman: επίβλεψη συνεδρίου και διαχείριση λειτουργών του. Reviewer : αξιολόγηση και βαθμολόγηση διατριβών που του έχουν ανατεθεί. Author: υποβολή διατριβών σε συνέδριο. Ως προς τα προνόμια στο σύστημα, ταυτίζεται με τον common user. System Administrator: δημιουργία συνεδρίων, ανάθεση chairmen σε συνέδρια, γενική επίβλεψη συστήματος.
Χρονοδιάγραμμα Λειτουργιών Συστήματος
Τεχνολογίες Ανάπτυξης XHTML: o Χρησιμοποιείται για σήμανση διαφορετικών περιεχομένων στις ιστοσελίδες. o Δεν περιλαμβάνονται οδηγίες για παρουσιαστικό ιστοσελίων. CSS: o Περιλαμβάνει όλες τις οδηγίες για παρουσιαστικό ιστοσελίδων. JavaScript: o Χρησιμοποιείται για ειδικές λειτουργίες πάνω στον κώδικα XHTML: π.χ. toggling content visibility, εισαγωγή πολλαπλών authors σε διατριβή, user menus.
Τεχνολογίες Ανάπτυξης ( συνέχεια ) AJAX: o Χρησιμοποιείται για τα sliders στη γραφική διεπιφάνεια της αξιολόγησης διατριβών. MySQL: o Διατηρεί τη database του συστήματος. PHP: Μέθοδοι για: o ασφάλεια συστήματος και διαχείριση προνομίων χρηστών o επικοινωνία με database. o παρουσίαση αποτελεσμάτων λειτουργιών σε XHTML.
Βάση Δεδομένων PRDB Αποτελείται από 14 πίνακες. 2 χρήστες στη PRDB: o prdbadm: Για την επικοινωνία του system administrator με τη database. o prdbuser: Για την επικοινωνία των υπόλοιπων χρηστών. Ο prdbuser έχει περιορισμένα προνόμια στους πίνακες της PRDB. π.χ. Για πίνακα usersactionlog, μόνο INSERT και όχι SELECT.
Παρουσίαση Συστήματος • 59 αρχεία για τη γραφική διεπιφάνεια συστήματος • Σχεδιάστηκε σύμφωνα με τις 10 ευρετικές (heuristics) για την ενίσχυση της ευχρηστίας του Jakob Nielsen (2005). • Παράδειγμα ευρετικών: o Ορατότητα της κατάστασης του συστήματος. o Καλαίσθητος και μινιμαλιστικός σχεδιασμός. o Αποτροπή σφαλμάτων. o Βοήθεια στους χρήστες για αναγνώριση, διάγνωση και ανάκτηση από τα λάθη.
Ασφάλεια Συστήματος • Η υλοποίηση του συστήματος έγινε: o με την εφαρμογή των προτάσεων του OWASP TOP 10. o με τη συγγραφή μεθόδων σύμφωνα με τις ιδιαιτερότητες των λειτουργιών της. • Ασφάλεια στο σύστημα με: o Αναγκαστική υποστήριξη JavaScript και Session Cookies από browsers. o Χρήση μεταβλητών session για αποθήκευση προνομίων χρηστών. o Απουσία αναφοράς των session id και χρήση της μεθόδου session_regenerate_id() για αποφυγή επιθέσεων session fixation. o Χρήση μεθόδου whereUgo() για ταυτοποίηση προνομίων χρηστών.
Ασφάλεια Συστήματος ( συνέχεια ) Κωδικοποίηση UTF-8 για τη βάση δεδομένων και τις ιστοσελίδες. Χρήση κωδικοποίησης SHA-256 για ευαίσθητα δεδομένα. Έλεγχος και έγκριση δεδομένων πριν αποθηκευτούν στη DB: o με μεθόδους addslashes(), htmlentities(), trim(). o με custom μεθόδους variablesSet(), variablesFilled(), variablesCheckRange(), variablesValidate(). Αυστηροί έλεγχοι στις περιπτώσεις χρήσης μεταβλητών GET. Έλεγχοι ότι συγκεκριμένες λειτουργίες επιτρέπονται από το control panel του συνεδρίου (μέσω του loadconfoptionsinc.php).
Ασφάλεια Συστήματος ( συνέχεια ) Ασφάλεια μεθόδων διαχείρισης δεδομένων φορμών με: o ελέγχους ότι η ενέργεια επιτρέπεται στο συνέδριο. o ελέγχους προνομίων χρήστη. o ελέγχους ότι η φόρμα υποβλήθηκε με τη μέθοδο POST. o ελέγχους ότι το κρυφό πεδίο " csrf " που υποβάλλεται από τις φόρμες υπάρχει και έχει συγκεκριμένη μοναδική τιμή. Ασφάλεια Βάσης Δεδομένων με: o περιορισμένα προνόμια χρήσης στους πίνακες της DB. o χρήση του σε μεθόδους o μέθοδοι dbErrorHandler() και save_to_usersactionlog(). Αρχείο sessioninitinc.php.