Το προφίλ μας στο Google Plus
0

Web development σε περιβάλλον LAMP [μέρος 8]

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

Web development σε περιβάλλον LAMP [μέρος 8]

Το πρωτόκολλο HTTP έχει σαν αποστολή τη μεταφορά κειμένου μεταξύ των υπολογιστών ενός δικτύου. Η επιτυχία του σε αυτή την ομολογουμένως ταπεινή αλλά *εξαιρετικά* σημαντική αποστολή, είναι τεράστια κι αδιαμφισβήτητη. Για πολλούς, η επιτυχία οφείλεται στην απλότητα του πρωτοκόλλου. Όπως όμως θα γνωρίζετε, η απλότητα δεν είναι πάντοτε ευεργετική. Υπάρχουν φορές που λειτουργεί και σαν εμπόδιο ή, τέλος πάντων, ως μια πρόσθετη δυσκολία…

Είναι, βλέπετε, που το HTTP αδιαφορεί πλήρως για την κατάσταση στην οποία βρίσκεται μια σύνδεση. Για την ακρίβεια, ούτε καν προβλέπει την έννοια της κατάστασης και γι’ αυτό χαρακτηρίζεται κι ως stateless protocol. Με απλά λόγια, δεν παρέχει κανέναν εγγενή μηχανισμό για τον έλεγχο του αν ένα σύνολο αιτημάτων αποτελούν αυτοτελή οντότητα, αν ανήκουν σε μια “ομάδα”, ή όχι. Για να κατανοήσετε τι σημαίνει αυτό, σκεφτείτε κάποια πρωτόκολλα που ανήκουν στην αντίθετη κατηγορία (stateful), όπως τα SSH, FTP και Telnet. Με αυτά τα πρωτόκολλα, μετά από ένα επιτυχημένο login, μπορούμε να στέλνουμε όσα αιτήματα θέλουμε κι ο διακομιστής είναι βέβαιο ότι θα τα εκτελεί *χωρίς* να ζητάει ξανά και ξανά τα στοιχεία μας. Με τη βοήθεια αυτών των πρωτοκόλλων, ο εκάστοτε διακομιστής μπορεί να γνωρίζει αν τα αιτήματα που λαμβάνει προέρχονται από τον ίδιο χρήστη κι αν τελικά ανήκουν στην ίδια “ομάδα” ή όχι. Το HTTP δεν προβλέπει τίποτα σχετικό!

Παρ’ όλα αυτά, η συντριπτική πλειονότητα των εφαρμογών του ιστού βασίζονται σε κάποιο είδος επαλήθευσης της ταυτότητας των χρηστών. Έτσι, μπορούμε να κάνουμε login σε κάποια εφαρμογή web και στη συνέχεια να αποκτήσουμε πρόσβαση σε κλειδωμένο περιεχόμενο και υπηρεσίες, να αποθηκεύσουμε τις προτιμήσεις μας κ.ο.κ. Αναρωτηθήκατε ποτέ πώς γίνεται αυτό;

Μια λύση έχει δώσει η ομάδα ανάπτυξης της PHP, μάλιστα χωρίς την παραμικρή παρέκκλιση από της προδιαγραφές του πρωτοκόλλου HTTP. Για την αντιμετώπιση του προβλήματος, εισήγαγαν την έννοια των συνεδριών (sessions). Κάθε συνεδρία διαθέτει ένα προστατευμένο σύνολο μεταβλητών, καθώς κι ένα κρυπτογραφημένο κλειδί. Οι μεταβλητές περιέχουν τα δεδομένα που προορίζονται για τον εκάστοτε “νόμιμο” χρήστη ή, τέλος πάντων, καθορίζουν το αν και πού θα έχει πρόσβαση ο εκάστοτε χρήστης. Το κρυπτογραφημένο κλειδί, από την άλλη, λειτουργεί ως διαβατήριο εισόδου. Ο χρήστης που διαθέτει το κλειδί μιας συνεδρίας έχει και πρόσβαση στις αντίστοιχες προστατευμένες μεταβλητές.

Το μηνιαίο περιοδικό deltaHacker είναι αποκλειστικά ψηφιακό (PDF). Μάθετε για τις απίστευτες τιμές των συνδρομών και κάντε τώρα την παραγγελία σας από τη σχετική φόρμα. Προσοχή: Για την πρόσβαση στα επεισόδια του deltaCast απαιτείται, πλέον, ενεργή συνδρομή στο περιοδικό.

Leave a Reply

You must be logged in to post a comment.

Σύνδεση

Αρχείο δημοσιεύσεων