Ζητήματα σχεδίασης εφαρμογής / Authentication

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Άβαταρ μέλους
gmitsos
Δημοσιεύσεις: 16
Εγγραφή: 22 Φεβ 2005 16:02
Τοποθεσία: Αθήνα

Ζητήματα σχεδίασης εφαρμογής / Authentication

Δημοσίευση από gmitsos » 08 Μαρ 2005 12:01

Γειά σας και πάλι,

Οι έχοντες πείρα στο σχεδιασμό εφαρμογών θα ήθελα να με "διαφωτήσουν" στο εξής θέμα.

Πως υλοποιείται ο μηχανισμός ελέγχου του χρήστη σε μία βάση για μία εφαρμογή. Τι εννοώ:

Υπάρχει ένα ζευγάρι username/passwd το οποίο κάνει τη σύνδεση με τη βάση. Επίσης με κώδικα php/βάση μπορεί να σχηματιστεί ένας πίνακας ο οποίος θα έχει καταχωρημένους τους χρήστες της εφαρμογής, δικαιώματα τους, το passwd (hashed) κ.τ.λ. οι οποίοι χρήστες είναι εντελώς διαφορετικοί από το username της βάσης.

Το πρόβλημα: Ποιά είναι η ασφαλής τακτική. Π.χ. φτιάχνουμε ένα username το οποίο "βλέπει" ένα πίνακα μόνο (αυτό με τα δικαιώματα των εφαρμογών) και από εκεί και πέρα κάνουμε connect την βάση με άλλο username;
Ή μήμπως με κώδικα ελέγχουμε τι πρόσβαση έχει ο χρήστης σε συγκεκριμένους πίνακες ενώ έχουμε κάνει connect στην βάση με ένα username το οποίο έχει σχεδόν full-access στην βάση.

Γιάννης

Άβαταρ μέλους
tsiger
Honorary Member
Δημοσιεύσεις: 1431
Εγγραφή: 11 Νοέμ 2002 13:40
Τοποθεσία: Thessaloniki Observation Center
Επικοινωνία:

Ζητήματα σχεδίασης εφαρμογής / Authentication

Δημοσίευση από tsiger » 08 Μαρ 2005 15:13

Κοιτα.. προσωπικα εχω χρησιμοποιησει 2 τακτικες για τετοιου ειδους προβληματα σε αλλο περιβαλλον μεν (CFM/SQL Server) αλλα η λογικη πιστευω πως ειναι η ιδια.

Στη πρωτη χρησιμοποιω ενα user/pass για συνδεση στη βαση κοινο απο ολους και δινω δικαιωματα μετα στο κωδικα μου σε ομαδες χρηστων για το τι κινησεις μπορουνε να κανουνε.

Στη 2η φτιαχνω κατευθειαν στη βαση ομαδες χρηστων με διαφορετικα δικαιωματα η καθεμια και αναλογως τον χρηση που συνδεεται το συνδεω στη βαση με user/pass μιας απο τις ομαδες που εχω σχηματισει στη βαση απο πριν.

Η 2η σε περιβαλλον windows και Coldfusion ειναι ποιο διαδεδομενη λογο προβληματων ασφαλειας.

Τωρα σε php δε ξερω ποιο δρομο θα ακολουθησεις αλλα το να συνδεθεις στη βαση με full access και απλα να δωσεις εκ των υστερων δικαιωματα στους χρηστες σου ειναι και αυτο τακτικη που ακολουθειται απο πολλους.

Άβαταρ μέλους
gmitsos
Δημοσιεύσεις: 16
Εγγραφή: 22 Φεβ 2005 16:02
Τοποθεσία: Αθήνα

Ζητήματα σχεδίασης εφαρμογής / Authentication

Δημοσίευση από gmitsos » 08 Μαρ 2005 17:28

Κοίταγα λίγο τον κώδικα του phpBB2 για να δω πως το υλοποιούνε. Αυτοί κάνουνε το εξής. Στον Installation δίνεις το username/passwd που κάνει την σύνδεση με τη βάση. Αυτό γράφεται τοπικά στο config.php που γίνεται included από σχεδόν παντού μετά. Τα δεδομένα για τους χρήστες του forum είναι αποθηκευμένα στον πίνακα phpbb_auth. Το ερώτημα εδώ είναι πόσο σφαλές είναι να γράφεται το username/passwd σε plain text file ...

Γιάννης

Άβαταρ μέλους
mrpc
WebDev Moderator
Δημοσιεύσεις: 3393
Εγγραφή: 03 Μάιος 2000 03:00
Τοποθεσία: Εξάρχεια
Επικοινωνία:

Ζητήματα σχεδίασης εφαρμογής / Authentication

Δημοσίευση από mrpc » 08 Μαρ 2005 18:40

Δεν γίνεται όμως να δει κανείς το περιεχόμενο. Το αρχείο είναι php, γίνεται parse και μετά παρουσιάζεται το αποτέλεσμα της εκτέλεσης του κώδικα που υπάρχει μέσα (που είναι ορισμός μεταβλητών άρα δεν παρουσιάζει τίποτα).
Αν θες όμως να είσαι σίγουρος, μπορείς στη θέση αυτού του αρχείου να βάλεις ένα δικό σου που θα κάνει include το original από κάπου που δεν είναι προσβάσιμο μέσω web.

Άβαταρ μέλους
gmitsos
Δημοσιεύσεις: 16
Εγγραφή: 22 Φεβ 2005 16:02
Τοποθεσία: Αθήνα

Ζητήματα σχεδίασης εφαρμογής / Authentication

Δημοσίευση από gmitsos » 08 Μαρ 2005 22:43

Σαφώς και συμφωνώ με αυτό που λές (mrpc), εδώ μπαίνει το θέμα αν από την κοσνόλα του συστήματος μπορεί κανείς να έχει πρόσβαση σε αυτό. Άρα θα πρέπει κανείς να είναι πολύ προσεκτικός σε θέματα permissions στο root directory. Και καλά να είναι Unix μηχανή τι γίνεται με τα βρωμό-permissions των Winblows ???
Όπως και να έχει το θέμα μάλλον αυτή η λύση είναι η "mainstream" από ότι κατάλαβα....

Γιάννης

Άβαταρ μέλους
mrpc
WebDev Moderator
Δημοσιεύσεις: 3393
Εγγραφή: 03 Μάιος 2000 03:00
Τοποθεσία: Εξάρχεια
Επικοινωνία:

Ζητήματα σχεδίασης εφαρμογής / Authentication

Δημοσίευση από mrpc » 09 Μαρ 2005 12:12

Τίποτα δεν σε εμποδίζει να βάλεις encrypted με κάποιο τρόπο το password. Στις περισσότερες εφαρμογές το password διαβάζεται από ένα αρχείο μόνο που περιέχει τις function για την πρόσβαση στη βάση και γίνεται include από παντού.
Όμως και πάλι δεν θα έχεις ασφάλεια αν κάποιος έχει φυσική πρόσβαση στα αρχεία σου.
Αυτό που δεν καταλαβαίνω είναι το γιατί κάποιος να έχει πρόσβαση στο root directory...
Αν το ανεβάσεις σε κάποιον server, το site σου θα τρέχει κάτω από τον δικό σου home φάκελο που θα έχεις πρόσβαση μόνο εσύ και ο root. Τι φοβάσαι λοιπόν;
Τώρα για τα windows, έτσι κι αλλιώς δεν σου συνιστώ να στήσεις την php σε windows. Ο ιδανικός συνδιασμός είναι linux-apache-php-mysql.

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες