Πρόβλημα με τα cookies-php

kokeroulis | Τρί, 06/16/2009 - 15:36 | 1' | 14

Καλημέρα

 

Έχω δημιουργήσει μια ιστιοσελίδα με τα cookies αλλά υπάρχει ένα πρόβλημα.Για να λειτουργήσουν τα cookies πρέπει να φορτώσει δύο φορές η σελίδα.Ξέρετε πως μπορώ να κάνω την σελίδα να χρησιμοποιεί τα cookies χωρίς να χρειάζεται να φορτώσω την σελίδα δύο φορές?

Δώσε αστέρια!

MO: (ψήφοι: 0)

Σχόλια

για ποιον λογο χρησιμοποιεις cookies???

 

[oprime@dexter]$uname -a | awk '{print $1, "on the ROCKS"}' | sed -e 's/on\ the\ ROCKS/ROCKS/'

 

Επειδή θέλω να μεταφέρω πληροφορίες από την μία σελίδα στην άλλη.Δεν χρησιμοποιώ κάποια βάση δεδομένω επειδή θέλω να μεταφέρω μόνο ένα όνομα.Τπτ άλλο.Σχετικά με τα cookies μήπως μπορείς να με βοηθήσεις?

αν θες να μεταφερεις απλως μια πληροφορια μπορεις να το κανεις με sessions το οποιο ειναι πιο ασφαλες, δεν γινεται στον client. σχετικα με cookies ελαχιστα που τα εχω δουλεψει πρεπει πρωτα να τα φτιαξεις και να γραψεις την πληροφορια και απο μια δευτερη σελιδα να τα διαβασεις για να περασεις την τιμη που θες εκει που θες...

 

 

[oprime@dexter]$uname -a | awk '{print $1, "on the ROCKS"}' | sed -e 's/on\ the\ ROCKS/ROCKS/'

 

Δεν έχει τύχει ποτέ να χρειαστώ κάτι τέτοιο, αλλά νομίζω οτι δεν γίνεται - αν φυσικά κατάλαβα καλά τι θες να πετύχεις: το ένα site να αποθηκεύει ένα cookie στον browser το οποίο να είναι προσβάσιμο και να διαβάζεται από άλλο site?

Τα cookies συνδέονται με την τρέχουσα σελίδα ή site, οπότε δεν νομίζω ότι θα μπορεί άλλο site να έχει πρόσβαση σε αυτά άλλου site.

Πάντως αν γίνεται δεν θα γίνεται με php, καθώς η php τρέχει στον server (ο οποίος δεν έχει -προφανώς- πρόσβαση στον browser σου), αλλά μέσω javascript (το οποίο τρέχει τοπικά στον client-browser σου)

Πες μας ακριβώς τι θες να κάνεις για να βρούμε την λύση...

Η μεταφορά των δεδομένων που λες θα γίνεται αυτόματα?
Δηλαδή το ένα site θα "καλεί" το άλλο, το οποίο θα πρέπει να διαβάσει την πληροφορία
ή
Τα δεδομένα θα πρέπει να αποθηκεύονται από το ένα site και όταν το άλλο site τέξει να μπορεί να βρει και να διαβάσει τις πληροφορίες??

--------------------------------------------------------------------

LawyersVoice.grLawyersVoice.gr - To forum των νέων δικηγορων

Αυτό που θέλω να κάνω είναι όταν ένας χρήστης στο joomla (είναι πρόγραμμα για να δημιουργείς σελίδες,όπως τα φόρουμ) είναι συνδεμένος να βλέπει μια συγκεκριμένη φόρμα και όταν δεν είναι να μην την βλέπει.Τα cookies θέλω να τα χρησιμοποιήσω στην ίδια σελίδα.Το πρόβλημα είναι ότι πρέπει να φορτώσει 2 φορές η σελίδα για να μπορέσει να τα χρησιμοποιείσει.Εγώ θέλω να μπορεί να τα χρησιμοποιεί με την πρώτη φορά.

Η φόρμα είναι προφανώς κάποιο component ή module έτσι?Οπότε κάνε το προσβάσιμο μόνο στους registered users από την διαχείριση του joomla...

Αν επιχειρείς να φτιάξεις δική σου επέκταση, τότε χρησιμοποιήσε κώδικα από παρόμοιες επεκτάσεις του joomla ώστε να το εντάξεις στο CMS ομαλά και σωστά. Πάντως να είσαι προσεκτικός με την δημιουργία της δικής σου επέκτασης, ώστε να μην δημιουργηθεί τρύπα σην ασφάλεια του site (είναι που είναι τρύπιο και κακογραμμένο το joomla μην γίνει χειρότερο...)

Πάντως σου προτείνω το Elxis CMS. Μοιάζει με το joomla (είναι και τα δύο fork του mambo), αλλά είναι ελληνικό, καινούργιο, πολύ καλά γραμμένο, ασφαλές και έχω γράψει και εγώ μερικές επεκτάσεις... ;-)

Αν θες στείλε μου με mail το κώδικα για να σε βοηθήσω στο akoutsoulelos[at]yahoo[dot]gr

--------------------------------------------------------------------

LawyersVoice.grLawyersVoice.gr - To forum των νέων δικηγόρων

apkoutsou μπορεις και με php να διαβασεις και να γραψεις cookies. δεν ειμαι 100% συγουρος αλλα μπορεις να διαβασεις cookies απο αλλο site.

 

[oprime@dexter]$uname -a | awk '{print $1, "on the ROCKS"}' | sed -e 's/on\ the\ ROCKS/ROCKS/'

 

slackware]

apkoutsou μπορεις και με php να διαβασεις και να γραψεις cookies. δεν ειμαι 100% συγουρος αλλα μπορεις να διαβασεις cookies απο αλλο site.

Sorry!!! Το λάθος δικό μου - όταν είμαι στην δουλειά, κακώς και ασχολούμαι με τέτοια θέματα, που είναι παντελώς ξένα...!!
Εδώ είναι και η σχετική τεκμηρίωση...

Τώρα όσο για το θέμα του να διαβάσεις cookies από άλλο site, αυτό σίγουρα δεν γίνεται:

http://www.cookiecentral.com/faq/#4
http://answers.yahoo.com/question/index?qid=20080810141507AAHTQs2

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

Όμως:(ΜΕ ΠΟΛΥ ΠΡΟΣΟΧΗ!!!)
http://www.cgisecurity.com/xss-faq.html#theft 

Ένας ακόμη τρόπος είναι να περνάς παραμέτρους στην URL του νέου site (για αυτό σε ρωτούσα αν θα γίνετια αυτόματα ή όχι) π.χ.:
www.newsite.gr?showform=yes
Όμως στα πλαίσια μιας επέκτασης του joomla αυτό μπορεί να γίνει μέσω μιας παραμέτρου της επέκτασης...

--------------------------------------------------------------------

LawyersVoice.grLawyersVoice.gr - To forum των νέων δικηγόρων

γιατι εχω την εντυπωση οτι μπορεις να διαβασεις τα cookies απο αλλο site??? φυσικα πρεπει να ξερεις πως λεγονται τα cookies...

πρεπει να ειχα γραψει κατι σχετικο σε php θα ψαξω να το βρω και να το ποσταρο..

 

[oprime@dexter]$uname -a | awk '{print $1, "on the ROCKS"}' | sed -e 's/on\ the\ ROCKS/ROCKS/'

 

Πραγματικά είμαι πολύ περιέργος αν μπορεί να γίνει κάτι τέτοιο slack! Εδώ δεν μπορείς να διαβάσεις cookie από subdomain ή subdirectory του ίδιου site!!

Αν το βρεις πόσταρέ το σε παρακαλώ να δω την χακιά (ή μήπως ... κρακιά ??? )

--------------------------------------------------------------------

LawyersVoice.grLawyersVoice.gr - To forum των νέων δικηγόρων

apkoutsou,

δεν εχω την πνευματικη διαυγεια να το ψαξω παραπανω αλλα εχεις δικιο και αδικο

1) Εχεις δικιο στο εξεις... ΔΕΝ μπορεις να διαβασεις τα cookies απο αλλα sites, γιατι ,σε Slackware-Current αλλα και σε αλλες διανομες το ιδιο θα συμβαινει,

ο Firefox κραταει ολα τα cookies με τις τιμες του στο cookie.sqlite το οποιο αναγνωριζεται σαν binary, παρολο που με cat μπορεις να το διαβασεις ;--)

 

2) Αδικο γιατι, με την χρηση javascript μπορεις να διαβασεις τις τιμες των cookies του site ποy βρισκεσαι εκεινη την στιγμη. Δηλαδη, αν εγω χρησιμοποιω cookies για authentication (κουφια η ωρα που τα ακουει) και ενας μαγκας κανει inject alert(document.cookie) στον κωδικα μου τοτε ο client θα δει την τιμη του cookie.

Οποτε αν το cookie εχει κωδικο προσβασης θα δει τον κωδικο του. :)

Με αυτο τον τροπο μπορει καποιος να κλεψει ευαισθητα προσωπικα δεδομενα. Ο κωδικας σε php που ανεφερα αφορουσαν cookies που ειχα φτιαξει για ενα δικο μου project οποτε μπορουσα και τα διαβαζα ανετα.

Θα το ψαξω λιγο καλυτερα να δω αν μπορω να διαβασω και αλλα cookies :--)

 

[oprime@dexter]$uname -a | awk '{print $1, "on the ROCKS"}' | sed -e 's/on\ the\ ROCKS/ROCKS/'

 

slackware] 

ο Firefox κραταει ολα τα cookies με τις τιμες του στο cookie.sqlite το οποιο αναγνωριζεται σαν binary, παρολο που με cat μπορεις να το διαβασεις ;--)

Ποιό cat? Εδώ πριν λίγο καιρό στον ΙΕ μπορούσες με javascript απλή να διαβάσεις όλα τα ενεργά cookies των ανοικτών ιστοσελίδων από οποιοδήποτε site!!! Ούτε σουρωτήρι δεν έχει τόσες τρύπες...

slackware] 

2) Αδικο γιατι, με την χρηση javascript μπορεις να διαβασεις τις τιμες των cookies του site ποy βρισκεσαι εκεινη την στιγμη. Δηλαδη, αν εγω χρησιμοποιω cookies για authentication (κουφια η ωρα που τα ακουει) και ενας μαγκας κανει inject alert(document.cookie) στον κωδικα μου τοτε ο client θα δει την τιμη του cookie.

Το ξέρω, για αυτό τον λόγο ακριβώς έδωσα το link με το XSS (cross-site scripting) που δίνει μια περιληπτική και περιγραφική εικόνα για το πώς θα μπορούσε κάτι τέτοιο να γίνει, άλλα λόγω του θέματος δεν επεκτάθηκα...

--------------------------------------------------------------------

LawyersVoice.grLawyersVoice.gr

- To forum των νέων δικηγόρων

kokeroulis]

Αυτό που θέλω να κάνω είναι όταν ένας χρήστης στο joomla (είναι πρόγραμμα για να δημιουργείς σελίδες,όπως τα φόρουμ) είναι συνδεμένος να βλέπει μια συγκεκριμένη φόρμα και όταν δεν είναι να μην την βλέπει.Τα cookies θέλω να τα χρησιμοποιήσω στην ίδια σελίδα.Το πρόβλημα είναι ότι πρέπει να φορτώσει 2 φορές η σελίδα για να μπορέσει να τα χρησιμοποιείσει.Εγώ θέλω να μπορεί να τα χρησιμοποιεί με την πρώτη φορά.

 

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

π.χ. if $user == register

{ header ("Location: test1.php") }

else

{ header ("Location:test2.php") }

Πολύ απλοϊκά βέβαια όλα αυτά γιατί θέλει session_start (νάτα τα cookies)  και select απο τη βάση και διάφορα άλλα τέτοια τα οποία αν δεν τα γνωρίζεις θα σου κάνουν το site μπάχαλο.

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

 - Αν υποθέσουμε οτι έχεις φτιάξει σωστά το πιο πάνω script, δοκίμασε να το βάλεις να κάνει auto-refresh ώστε να στέλνει δύο φορές το cookie αλλά χωρίς να το καταλαβαίνει ο χρήστης

header('Refresh: 1; url=η σελίδα σου');

Εντάξει το διόρθωσα το πρόβλημα.Σας ευχαριστώ όλους για την βοήθεια σας.