Τροφοδοσία στοιχείων βάσει δικαιωμάτων (αναζήτηση βέλτιστης λύσης)

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

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

Απάντηση
Άβαταρ μέλους
philos
Δημοσιεύσεις: 264
Εγγραφή: 30 Αύγ 2007 23:32

Τροφοδοσία στοιχείων βάσει δικαιωμάτων (αναζήτηση βέλτιστης λύσης)

Δημοσίευση από philos » 17 Μάιος 2013 17:13

Γεια σας παιδιά. Σε συνέχεια αυτού του topic, έχω το εξής πρόβλημα για το οποίο ψάχνω τη βέλτιστη λύση.

Σε αυτή τη φάση έχω καταφέρει να φτιάχνω html αρχεία στον δίσκο του server, τα οποία μπορούν να τροφοδοτούν τα iframes στα εξωτερικά sites. Τα αρχεια αυτά ανανεώνονται κάθε 15 λεπτά - ανανεώνονται με cron job μόνο όσα αρχεία πρέπει να ενημερωθούν, με χρήση μιας τιμής στη βάση δεδομένων που παίρνει την τιμή 1 όταν ένα section έχει νέα στοιχεία και μηδενίζεται μετά το update του html αρχείου από το cron job.
Όλα καλά μέχρι εδώ, οι χρήστες τροφοδοτούν ένα html αρχείο οπότε δεν επιβαρύνεται ιδιαίτερα ο server μου αφού δεν τρέχει κάποιο php αρχείο.

Προέκυψαν όμως νέες ανάγκες. Θέλω να φτιάξω ένα windows gadget που θα δείχνει στον χρήστη τα τελευταία στοιχεία ενός section.
Όπως θα γνωρίζετε όσοι έχετε ασχοληθεί, ένα windows gadget μπορεί να αναπτυχθεί με xml, html και css. Οπότε έχουμε ένα παρόμοιο πρόβλημα.
Μπορώ να τροφοδοτώ στο gadget με χρήση iframe, τα html αρχεία (τα οποία δείχνανε μέχρι στιγμής το public περιεχόμενο).

Κάποια sections έχουν ιδιαιτερότητες όσον αφορά τα δικαιώματα προβολής κάποιων στοιχείων τους.
Τα windows gadgets είναι βασισμένα στον Internet Explorer, οπότε ΑΝ ο χρήστης κάνει login στο vbulletin forum μου μέσω του IE με ανοιχτά cookies, με χρήση ενός php αρχείου το οποίο θα ελέγχει δικαιώματα κτλ, μπορεί να προκύψει ένα gadget που θα δείχνει στον χρήστη τα public στοιχεία + όσα επιπλέον μπορεί να δει ως συνδεδεμένος (logged in) χρήστης.
Το gadget θα ανανεώνει (τροφοδοτώντας από τον server ξανά το php αρχείο) κάθε λίγα λεπτά το περιεχόμενό του.

Επιθυμώ όπως καταλάβατε, ο χρήστης να προβάλει στο gadget του και τα στοιχεία που έχει δικαίωμα ως συνδεδεμένος χρήστης. Οπότε η λύση των html αρχείων δεν είναι η κατάλληλη ( ; ).
Αν γίνει χρήση ενός php αρχείου το οποίο κάθε λίγα λεπτά θα τροφοδοτεί από το μηδέν τα στοιχεία, ελέγχοντας κάθε φορά για δικαιώματα κτλ ξανά και ξανά, φοβάμαι ότι δεν είναι βέλτιση λύση. Θα επιβαρύνεται ο server χωρίς λόγο καθόλη τη διάρκεια που ο χρήστης θα έχει ανοιχτό το PC του.

Μια σκέψη μου είναι για κάθε User ID να υπάρχει ένα ξεχωριστό HTML αρχείο στον server, το οποίο θα τροφοδοτεί το gadget. Τα html αρχεία όπως σας είπα, ανεώνονται από cron job κάθε 15 λεπτά και ΜΟΝΟ ΑΝ πρέπει να ανανεωθούν/υπάρχουν νέα στοιχεία.
Φοβάμαι όμως ότι το να υπάρχουν html αρχεία στον server (προφανώς public προσβάσιμα) που προβάλουν περιεχόμενο που δεν έχει δικαίωμα ένας guest του site μου να δει, προκύπτει θέμα ασφαλείας αφού αν κάποιος μάθει το url του html αρχείου αποκτά πρόσβαση σε πληροφορίες που δεν πρέπει.
Τι μπορώ να κάνω;

Άβαταρ μέλους
jpk
Δημοσιεύσεις: 441
Εγγραφή: 09 Μαρ 2011 21:17

Τροφοδοσία στοιχείων βάσει δικαιωμάτων (αναζήτηση βέλτιστης λύσης)

Δημοσίευση από jpk » 21 Μάιος 2013 16:07

Σίγουρα υπάρχουν ατελείωτες μέθοδοι caching , κάποιες καλύτερες από αυτή που θα σου προτείνω, αλλά για το συγκεκριμένο πρόβλημα αυτή μου ήρθε στο μυαλό τώρα.

Σε γενικές γραμμές ακολουθεί το μοτίβο του application cashing. Στην συγκεκριμένη περίπτωση (και χωρίς να μπαίνω σε MVC που για αυτό έχει φτιαχτεί το application caching) σημαίνει ότι το job σου παράγει – σβήνει και ξαναγράφει ένα αρχείο ας το πούμε x.chache το οποίο δεν βρίσκετε στο public_html. Ο Controller (το script ή ότι άλλο είναι) , που παίρνει το request πρώτα ελέγχει τις εξουσιοδοτήσεις και μετά παράγει το ανάλογο αποτέλεσμα με unserialize (view χρησιμοποιώντας το x.cache). Το πώς παίρνεις τις εξουσιοδοτήσεις έχει νόημα αλλά φαντάζομαι ότι ήδη θα έχεις κάποιο τρόπο.

Ίσως σκεφτείς τι νόημα έχει όλο αυτό το serialize – unserialize σε μια τέτοια περίπτωση, ίσως και να μην έχει αν .. δεν υπάρχει περίπτωση να σερβίρεις ( ;>) ) διαφορετικό περιεχόμενο ανάλογα με τον χρήστη ή κάποια άλλη μεταβλητή εισόδου.


Ελπίζω να βοήθησα…

More… (αν θέλουμε να επεκτείνουμε την παραπάνω λογική ούτε το job χρειάζεται , απλά μέσα στο x.cache που είναι ένα serialized αρχείο μεταβλητών έχουμε και μια μεταβλητή πότε έχει γίνει τελευταία φορά update , και αν είναι πάνω από τέταρτο π.χ. τότε το ξαναπαράγουμε)

More2... (Επειδή όπως κατάλαβα η εφαρμογή σου σερβίρει διαφορετικό περιεχόμενο ανά χρήστη έχουν νόημα τα caching binds που σε απλοποιημένη μορφή σημαίνει διαφορετικά αρχεία serialized ανά κλειδί(στην περίπτωση μας χρήστη). Πάντως , και κλείνοντας , σκέψου και το ενδεχόμενο των web sockets. )

gvre
Δημοσιεύσεις: 992
Εγγραφή: 14 Οκτ 2010 11:34
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

Τροφοδοσία στοιχείων βάσει δικαιωμάτων (αναζήτηση βέλτιστης λύσης)

Δημοσίευση από gvre » 21 Μάιος 2013 16:51

philos έγραψε:Μια σκέψη μου είναι για κάθε User ID να υπάρχει ένα ξεχωριστό HTML αρχείο στον server, το οποίο θα τροφοδοτεί το gadget. Τα html αρχεία όπως σας είπα, ανεώνονται από cron job κάθε 15 λεπτά και ΜΟΝΟ ΑΝ πρέπει να ανανεωθούν/υπάρχουν νέα στοιχεία.
Φοβάμαι όμως ότι το να υπάρχουν html αρχεία στον server (προφανώς public προσβάσιμα) που προβάλουν περιεχόμενο που δεν έχει δικαίωμα ένας guest του site μου να δει, προκύπτει θέμα ασφαλείας αφού αν κάποιος μάθει το url του html αρχείου αποκτά πρόσβαση σε πληροφορίες που δεν πρέπει.
Τι μπορώ να κάνω;
Έχεις κάνει δοκιμές χωρίς στατικά html, αλλά με ενεργοποιημένο το query cache της mysql; Πόσα views/sec περιμένεις να έχεις περίπου;

Απάντηση

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

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

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