L34x88iT Δημοσ. 26 Αυγούστου 2022 Share Δημοσ. 26 Αυγούστου 2022 Ενώ παλιά δούλευε σωστά... Έχω 1 random νούμερο που το έχω αποθηκεύσει σε μια μεταβλητή. πχ $random = mt_rand(10,99); Και την αποθηκεύω σε ένα session $_SESSION['tokensession'] = $random ; Αν κάνω echo $_SESSION['tokensession']." - ".$random θα πάρω αποτέλεσμα πχ 18 - 18 οκ μεχρι εδώ. ====================================== Εγώ θέλω όμως να κάνω έναν έλεγχο στο κοντρολερ οπότε όταν στέλνω ένα hidden input το $random στο controler παίρνω διαφορετικο αποτέλεσμα. Δηλαδή από την φόρμα στέλνω <input type="hidden" class="form-control" value="<?php echo $random;?>" name="token"> <?php $_SESSION['tokensession'] = $random ;?> και στο controller έχω $inputvalue = $this->input->post('token'); $tokenvalue = $_SESSION['tokensession']; Αν κάνω τώρα echo $tokenvalue ." - ".$random δεν θα πάρω ίδια νούμερα πχ 18-18 αλλά κάτι σαν 75-18 Τι μπορεί να φταίει? Παλιά δούλευε σωστά... Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Moderators Kercyn Δημοσ. 27 Αυγούστου 2022 Moderators Share Δημοσ. 27 Αυγούστου 2022 Όπου κάνεις access το $_SESSION['tokensession'], έχεις κάνει session_start() πρώτα; Αν μπορείς βάλε τον κώδικα. 1 Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
L34x88iT Δημοσ. 27 Αυγούστου 2022 Μέλος Share Δημοσ. 27 Αυγούστου 2022 5 ώρες πριν, Kercyn είπε Όπου κάνεις access το $_SESSION['tokensession'], έχεις κάνει session_start() πρώτα; Αν μπορείς βάλε τον κώδικα. όχι δεν έχω κάνει. Ο κώδικας όσο αφορά το session είναι μόνο αυτό που έγραψα. Η σελίδα είναι σε codeigniter Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
tsofras Δημοσ. 27 Αυγούστου 2022 Share Δημοσ. 27 Αυγούστου 2022 3 ώρες πριν, L34x88iT είπε όχι δεν έχω κάνει. Ο κώδικας όσο αφορά το session είναι μόνο αυτό που έγραψα. Η σελίδα είναι σε codeigniter Αν και δεν ξέρω καθόλου php Θα κάνω μία υπόθεση : <input type="hidden" class="form-control" value="<?php echo $random;?>" name="token"> Εδώ δίνεις στο value ένα random value (π.χ. 75) <?php $_SESSION['tokensession'] = $random ;?> Εδώ βάζεις στο session ένα άλλο random value (π.χ. 18) και στο controller έχω $inputvalue = $this->input->post('token'); Εδώ διαβάζεις το value απο το input (οπότε είναι το 75) $tokenvalue = $_SESSION['tokensession']; Εδώ διαβάζεις το value απο το session (οπότε είναι το 18) Εγώ java ξέρω , αλλά αν ισχύει ότι όποτε καλείς την random έστω και με echo τρέχει η μέθοδος της random τότε για αυτό έχεις 2 διαφορετικές τιμές Μπορεί να λέω και αρλούμπες Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Moderators Kercyn Δημοσ. 27 Αυγούστου 2022 Moderators Share Δημοσ. 27 Αυγούστου 2022 (επεξεργασμένο) 54 λεπτά πριν, tsofras είπε Αν και δεν ξέρω καθόλου php Θα κάνω μία υπόθεση : <input type="hidden" class="form-control" value="<?php echo $random;?>" name="token"> Εδώ δίνεις στο value ένα random value (π.χ. 75) <?php $_SESSION['tokensession'] = $random ;?> Εδώ βάζεις στο session ένα άλλο random value (π.χ. 18) και στο controller έχω $inputvalue = $this->input->post('token'); Εδώ διαβάζεις το value απο το input (οπότε είναι το 75) $tokenvalue = $_SESSION['tokensession']; Εδώ διαβάζεις το value απο το session (οπότε είναι το 18) Εγώ java ξέρω , αλλά αν ισχύει ότι όποτε καλείς την random έστω και με echo τρέχει η μέθοδος της random τότε για αυτό έχεις 2 διαφορετικές τιμές Μπορεί να λέω και αρλούμπες Το $random είναι μεταβλητή, άρα και στα 2 το ίδιο βάζει. Αυτό που σκέφτομαι εγώ είναι μήπως κάτι γίνεται με το session και δεν ανανεώνει την τιμή σωστά. Βλέπω ότι το codeigniter λίγο-πολύ λέει ότι τα sessions "παίζουν μόνα τους" οπότε λογικά το session_start το κάνει εσωτερικά κάπου. Όταν κάνεις submit τη φόρμα τι στέλνει; Δοκίμασε να βάλεις κι ένα breakpoint εκεί που κάνεις generate το $random, και μετά δες τι τιμές πάει και κάνει echo στη φόρμα και τι βάζει στο session. Επεξ/σία 27 Αυγούστου 2022 από Kercyn 1 1 Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
L34x88iT Δημοσ. 27 Αυγούστου 2022 Μέλος Share Δημοσ. 27 Αυγούστου 2022 (επεξεργασμένο) Έκανα κάποια πειραματάκια και ακούστε πιο είναι το περίεργο. Αν στην $random βάλω καρφωτά μια τιμή (πχ 25), τότε στο controller και το input και το session, φέρνει 25. Αν στην $random βάλω τιμή από το mt_rand και πάρει μια τιμή (πχ 40) και αναθέσω αυτή την μεταβλητή στο session. $_SESSION['tokensession'] = $random και στο καπάκι κάνω echo για δοκιμή και το $_SESSION['tokensession'] και το $random, θα εμφανίσει ίδιες τιμές. Με λίγα λόγια πιο συνοπτικά. Με καρφωτές τιμές στο $random, το session και to input, μου φέρνει στο controller τις ίδιες τιμές. Με mt_rand τιμές στο $random, το session και to input, μου φέρνει στο controller τις διαφορετικές τιμές. Και τώρα η ερώτηση του ενός εκατομμυρίου. Πως τόσα χρόνια δούλευε και τώρα χωρίς να αλλάξω κάτι δεν δουλεύει??? Επεξ/σία 27 Αυγούστου 2022 από L34x88iT Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
dimkazakos Δημοσ. 27 Αυγούστου 2022 Share Δημοσ. 27 Αυγούστου 2022 Η απάντηση εξαρτάται από πολλές παραμέτρους. Αν θέλεις λύση, ανέβασε ολόκληρο το αρχείο με τον κώδικά σου ή ακόμη και ολόκληρο το script. Μπορεί να άλλαξε η PHP version και κάποια μεταβλητή να ορίζεται δύο φορές. Μπορεί να άλλαξε μία τιμή στο php.ini ή ένα extension. https://phpdecode.xyz/ Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
villa&spa Δημοσ. 27 Αυγούστου 2022 Share Δημοσ. 27 Αυγούστου 2022 (επεξεργασμένο) Σιγουρέψου ότι η μεταβλητή σου δηλώνετε κ τρέχει μια φορά κάθε φορά, η $random = mt_rand(10,99); θα αλλάζει σε κάθε κλίση / ανανέωση της σελίδας. Παίζει ρόλο τι θέλεις να πετύχεις; Κάποια ασφάλεια ελέγχου της φόρμας; Σωστά; Πρέπει τότε η μεταβλητή σου να μπει σε ένα σημείο κ μόνο εκεί που ξεκινάει το Session με το session_start() πιθανόν εκτός της φόρμας σελίδας... Τώρα γιατί έπαιζε παλιά κ όχι τώρα, πιθανόν νεότερων εκδόσεων php / components / controller / framework etc etc... και τη μεριά του server μην ξεχνάμε. Επεξ/σία 27 Αυγούστου 2022 από villa&spa Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
elvizakos Δημοσ. 27 Αυγούστου 2022 Share Δημοσ. 27 Αυγούστου 2022 Στις 26/8/2022 στις 1:46 ΜΜ, L34x88iT είπε Αν κάνω τώρα echo $tokenvalue ." - ".$random δεν θα πάρω ίδια νούμερα πχ 18-18 αλλά κάτι σαν 75-18 Λογικότατο. Θα πρέπει να κάνεις: <?php echo $tokenvalue . "-" . $inputvalue; ?> Επίσης, πρόσεξε στο $_SESSION['tokensession'] να αποθηκεύσεις την τιμή της $random αφού έχεις πάρει πρώτα την τιμή που έχει ήδη και την έχεις αποθηκεύσει στη $tokenvalue. 1 Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
L34x88iT Δημοσ. 30 Αυγούστου 2022 Μέλος Share Δημοσ. 30 Αυγούστου 2022 Όλο αυτό το είχα κάνει σαν έξτρα ασφάλεια οτι το submit της φόρμας γίνεται από εμένα και όχι από κάποια άλλη σελίδα. Μέχρι να βρω λύση αφαίρεσα αυτά που είχα κάνει για να μπορεί να δουλέψει το site και έβαλα ένα recaptcha. Υ.Γ. Για να αποτρέψω όπως είπα το submit της φόρμας από άλλο site υπάρχει κάποιος πιο "επίσημος τρόπος". Χρησιμοποιώ codeigniter. Επίσης είχα βρει και εισάγει κάποια πρόσθετη ασφάλεια στην htaccess αλλά δεν θυμάμαι αν έκανε και αυτό που περιγράφω. Οι γραμμές ήταν: <IfModule mod_headers.c> Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" env=HTTPS Header set X-XSS-Protection "1; mode=block" Header always append X-Frame-Options SAMEORIGIN Header set X-Content-Type-Options nosniff </IfModule> Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
k33theod Δημοσ. 31 Αυγούστου 2022 Share Δημοσ. 31 Αυγούστου 2022 Στις 27/8/2022 στις 12:51 ΜΜ, L34x88iT είπε Έκανα κάποια πειραματάκια και ακούστε πιο είναι το περίεργο. Αν στην $random βάλω καρφωτά μια τιμή (πχ 25), τότε στο controller και το input και το session, φέρνει 25. Αν στην $random βάλω τιμή από το mt_rand και πάρει μια τιμή (πχ 40) και αναθέσω αυτή την μεταβλητή στο session. $_SESSION['tokensession'] = $random και στο καπάκι κάνω echo για δοκιμή και το $_SESSION['tokensession'] και το $random, θα εμφανίσει ίδιες τιμές. Με λίγα λόγια πιο συνοπτικά. Με καρφωτές τιμές στο $random, το session και to input, μου φέρνει στο controller τις ίδιες τιμές. Με mt_rand τιμές στο $random, το session και to input, μου φέρνει στο controller τις διαφορετικές τιμές. Και τώρα η ερώτηση του ενός εκατομμυρίου. Πως τόσα χρόνια δούλευε και τώρα χωρίς να αλλάξω κάτι δεν δουλεύει??? Κάπου γίνεται ίσως refresh η σελίδα και παράγεται νεό random. Μην βάζεις την συνάρτηση random μέσα σε view, δημιούργησε την κάπου άλλου και στείλ την έτοιμη. To file δηλαδή που περιέχει την random() δεν πρέπει να στέλνεται στο browser, Θα στέλνεται μόνο η παραγόμενη τιμή. Τέλος μην χρησιμοποιείς τόσο απλό sessiontoken με το δεύτερο χρήστη έχεις 1/100 να έχεις ίδιο token. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
L34x88iT Δημοσ. 1 Σεπτεμβρίου 2022 Μέλος Share Δημοσ. 1 Σεπτεμβρίου 2022 14 ώρες πριν, k33theod είπε Κάπου γίνεται ίσως refresh η σελίδα και παράγεται νεό random. Μην βάζεις την συνάρτηση random μέσα σε view, δημιούργησε την κάπου άλλου και στείλ την έτοιμη. To file δηλαδή που περιέχει την random() δεν πρέπει να στέλνεται στο browser, Θα στέλνεται μόνο η παραγόμενη τιμή. Καταλαβα τι λες. Αν και τώρα το έσβησα τελείως και ψάχνω τα ενσωματωμένα token του Codeigniter. 14 ώρες πριν, k33theod είπε Τέλος μην χρησιμοποιείς τόσο απλό sessiontoken με το δεύτερο χρήστη έχεις 1/100 να έχεις ίδιο token. To random αυτό το έγραψα χάριν παραδείγματος. Κανονικά το έχω μεγάλο ψηφίο. mt_rand(10000000,99999999) Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Moderators Kercyn Δημοσ. 1 Σεπτεμβρίου 2022 Moderators Share Δημοσ. 1 Σεπτεμβρίου 2022 https://www.codeigniter.com/userguide3/libraries/security.html?highlight=csrf 1 2 Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
k33theod Δημοσ. 2 Σεπτεμβρίου 2022 Share Δημοσ. 2 Σεπτεμβρίου 2022 Στις 1/9/2022 στις 10:50 ΠΜ, L34x88iT είπε To random αυτό το έγραψα χάριν παραδείγματος. Κανονικά το έχω μεγάλο ψηφίο. mt_rand(10000000,99999999) Χρησιμοποίησε καλύτερα αυτό που σου έστειλε ο @Kercyn ή get_random_bytes($length) οι αριθμοί μόνο δεν είναι ασφαλείς 1 Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα