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