The correct way is definitely storing the data in the database as-is,  μετάφραση - The correct way is definitely storing the data in the database as-is,  Ελληνικά πώς να το πω

The correct way is definitely stori

The correct way is definitely storing the data in the database as-is, without any slashes added. It makes no sense to add slashes before storing stuff in the database just to remove them again when retrieving it. Not only that, by adding slashes you are effectively making your db data unusable (or hardly usable) for any other purpose than your specific PHP application, which is just bad practice.

Another reason why it's best to save the data as-is is because addslashes and stripslashes are not character set aware, ie. they assume the strings they are fed are always ASCII strings. Under certain conditions this can actually enable people to bypass the escaping performed by addslashes and stripslashes, thereby still posing a risk to your query safety.

From your example after having removed the magic_quotes checking and the data showing up with extra slashes, I would assume that you have magic_quotes enabled. My advice to you is to turn it off (or at least undo its effect like your original sql_quote_no function did, but it's better to turn it off alltogether) and always use mysql_real_escape_string function like I illustrated in my previous post. You can't rely on magic_quotes_gpc to do the escaping for you; quotes are not the only characters escaped by mysql_real_escape_string.

By doing this, you're assured that you are always storing the data exactly as it was entered by your users without being vulnerable to SQL injections. That means you will also retrieve the data exactly as it was entered by the users, and you won't have to worry about doing additional stripslashing. However, you must never simply output the user input as you received it from the database because this will expose you to XSS vulnerabilities (eg. if the user enters // cookie stealing goes here); make sure to always apply htmlentities before echoing user input on a page.
0/5000
Από: -
Για: -
Αποτελέσματα (Ελληνικά) 1: [Αντίγραφο]
Αντιγραφή!
Ο σωστός τρόπος είναι σίγουρα αποθήκευση τα δεδομένα στη βάση δεδομένων ως-είναι, χωρίς οποιαδήποτε καθέτους πρόσθεσε. Δεν έχει νόημα να προσθέσετε καθέτους πριν από την αποθήκευση πράγματα στη βάση δεδομένων μόνο για να τους αφαιρέσει πάλι κατά την ανάκτηση από αυτό. Δεν είναι μόνο ότι, με την προσθήκη καθέτους αποτελεσματικά κάνετε σας δεδομένων db άχρηστα (ή μετά βίας μπορούν να χρησιμοποιηθούν) για οποιοδήποτε άλλοδήποτε σκοπό από συγκεκριμένες PHP την αίτησή σας, που είναι απλά κακή πρακτική.Ένας άλλος λόγος, γιατί είναι καλύτερο να αποθηκεύσετε τα δεδομένα ως-είναι είναι επειδή addslashes και stripslashes δεν είναι χαρακτήρα που γνωρίζουν, δηλαδή. υποθέτουν ότι είναι οι συμβολοσειρές που τρέφονται πάντα συμβολοσειρές ASCII. Υπό ορισμένες συνθήκες, αυτό μπορεί να επιτρέψει στην πραγματικότητα τους ανθρώπους να παρακάμψει τη διαφυγή εκτελούνται από addslashes και stripslashes, με αυτόν τον τρόπο ακόμα να θέτουν σε κίνδυνο την ασφάλειά σας ερώτημα.Από το παράδειγμά σας, αφού αφαιρεθεί ο magic_quotes έλεγχος και τα δεδομένα που εμφανίζονται με καθέτους επιπλέον, υποθέτω ότι έχετε magic_quotes ενεργοποιημένη. Η συμβουλή μου προς εσάς είναι να το γυρίσει μακριά (ή τουλάχιστον να αναιρέσετε επίδρασή της, όπως έκανε σας αρχική λειτουργία sql_quote_no, αλλά είναι καλύτερα να απενεργοποιήσετε alltogether) και χρησιμοποιείτε πάντα την mysql_real_escape_string λειτουργία όπως επεξήγησα στην προηγούμενη θέση μου. Μπορείτε δεν μπορεί να επικαλεστεί magic_quotes_gpc να κάνει διαφυγής για σένα. εισαγωγικά δεν είναι το μόνο χαρακτήρες δραπετεύσει από mysql_real_escape_string.Με τον τρόπο αυτό, εσείς είστε βέβαιοι ότι πάντα αποθηκεύετε τα στοιχεία ακριβώς όπως πληκτρολογήθηκε των χρηστών σας χωρίς να είναι ευάλωτες σε SQL ενέσεις. Αυτό σημαίνει ότι μπορείτε θα επίσης να ανακτήσετε τα στοιχεία ακριβώς όπως πληκτρολογήθηκε από τους χρήστες, και δεν θα έχετε να ανησυχείτε για το κάνει επιπλέον stripslashing. Ωστόσο, πρέπει να εξάγετε ποτέ απλά το χρήστη εισροών όπως λάβατε από τη βάση δεδομένων, επειδή αυτό θα σας εκθέσει σε θέματα ευπάθειας XSS (π.χ. Εάν ο χρήστης πληκτρολογούσε // cookie stealing goes here); Σιγουρευτείτε για να πάντα να ισχύσετε htmlentities πριν επαναλαμβάνοντας την παρέμβαση του χρήστη σε μια σελίδα.
Μεταφράζονται, παρακαλώ περιμένετε..
Αποτελέσματα (Ελληνικά) 2:[Αντίγραφο]
Αντιγραφή!
Ο σωστός τρόπος είναι σίγουρα αποθήκευση των δεδομένων στη βάση δεδομένων ως έχει, χωρίς οποιεσδήποτε καθέτους πρόσθεσε. Δεν έχει νόημα να προσθέσετε καθέτους πριν από την αποθήκευση πράγματα στη βάση δεδομένων μόνο για να τους αφαιρέσει πάλι όταν την ανάκτηση. Δεν είναι μόνο ότι, με την προσθήκη καθέτους είστε καθιστώντας ουσιαστικά δεδομένα db σας άχρηστα (ή δύσκολα μπορούν να χρησιμοποιηθούν) για οποιοδήποτε άλλο σκοπό εκτός από τη συγκεκριμένη εφαρμογή σας PHP, η οποία είναι απλώς κακή πρακτική. Ένας άλλος λόγος για τον οποίο είναι καλύτερο να αποθηκεύσετε τα δεδομένα ως έχει είναι επειδή addslashes και stripslashes δεν είναι χαρακτήρας που γνωρίζουμε, δηλαδή. υποθέτουν οι χορδές τρέφονται είναι πάντα χορδές ASCII. Υπό ορισμένες συνθήκες αυτό μπορεί να δώσει πραγματικά τους ανθρώπους να παρακάμψει τον διαφεύγοντα εκτελούνται από addslashes και stripslashes, θέτοντας έτσι ακόμα κίνδυνο για την ασφάλεια ερώτημά σας. Από το παράδειγμα σας αφού αφαιρεθούν τα magic_quotes έλεγχο και τα στοιχεία που εμφανίζονται με επιπλέον καθέτους, θα ήθελα να υποθέσουμε ότι έχετε ενεργοποιημένη magic_quotes. Η συμβουλή μου προς εσάς είναι να το απενεργοποιήσετε (ή τουλάχιστον να αναιρέσετε επίδραση του σαν αρχική σας λειτουργία sql_quote_no έκανε, αλλά είναι καλύτερα να το απενεργοποιήσετε όλω) και χρησιμοποιείτε πάντα τη λειτουργία mysql_real_escape_string σαν να απεικονίζεται στο προηγούμενο post μου. Μπορείτε δεν μπορεί να επικαλεστεί magic_quotes_gpc να κάνει η διαφυγή για εσάς? εισαγωγικά δεν είναι οι μόνοι χαρακτήρες που δραπέτευσε από mysql_real_escape_string. Με τον τρόπο αυτό, είστε σίγουροι ότι έχετε πάντα την αποθήκευση των δεδομένων ακριβώς όπως είχε εισαχθεί από τους χρήστες σας, χωρίς να είναι ευάλωτη στην ενέσεις SQL. Αυτό σημαίνει ότι θα ανακτήσει επίσης τα στοιχεία ακριβώς όπως είχε εισαχθεί από τους χρήστες, και δεν θα έχετε να ανησυχείτε για να κάνει επιπλέον stripslashing. Ωστόσο, δεν πρέπει ποτέ απλά έξοδος της εισόδου του χρήστη όπως το λάβατε από τη βάση δεδομένων, διότι αυτό θα σας εκθέσει σε XSS ευπάθειες (π.χ. αν ο χρήστης πληκτρολογήσει. )? φροντίστε να ισχύει πάντοτε htmlentities πριν επαναλαμβάνοντας την είσοδο του χρήστη σε μια σελίδα.





// cookie stealing goes here
Μεταφράζονται, παρακαλώ περιμένετε..
 
Άλλες γλώσσες
η υποστήριξη εργαλείο μετάφρασης: Klingon, Ίγκμπο, Όντια (Ορίγια), Αγγλικά, Αζερμπαϊτζανικά, Αλβανικά, Αμχαρικά, Αναγνώριση γλώσσας, Αραβικά, Αρμενικά, Αφρικάανς, Βασκικά, Βεγγαλική, Βιετναμεζικά, Βιρμανικά, Βοσνιακά, Βουλγαρικά, Γίντις, Γαελικά Σκοτίας, Γαλικιακά, Γαλλικά, Γερμανικά, Γεωργιανά, Γιορούμπα, Γκουτζαρατικά, Δανικά, Εβραϊκά, Ελληνικά, Εσθονικά, Εσπεράντο, Ζουλού, Ζόσα, Ιαπωνικά, Ινδονησιακά, Ιρλανδικά, Ισλανδικά, Ισπανικά, Ιταλικά, Καζακστανικά, Κανάντα, Καταλανικά, Κινέζικα, Κινεζικά (Πα), Κινιαρουάντα, Κιργιζιανά, Κορεατικά, Κορσικανικά, Κουρδικά, Κρεόλ Αϊτής, Κροατικά, Λάο, Λατινικά, Λετονικά, Λευκορωσικά, Λιθουανικά, Λουξεμβουργιανά, Μαλέι, Μαλαγάσι, Μαλαγιάλαμ, Μαλτεζικά, Μαορί, Μαραθικά, Μογγολικά, Νεπαλικά, Νορβηγικά, Ολλανδικά, Ουαλικά, Ουγγρικά, Ουζμπεκικά, Ουιγούρ, Ουκρανικά, Ουρντού, Πάστο, Παντζάμπι, Περσικά, Πολωνικά, Πορτογαλικά, Ρουμανικά, Ρωσικά, Σίντι, Σαμοανικά, Σεμπουάνο, Σερβικά, Σεσότο, Σινχάλα, Σλαβομακεδονικά, Σλοβακικά, Σλοβενικά, Σομαλικά, Σουαχίλι, Σουηδικά, Σούντα, Σόνα, Ταζικιστανικά, Ταμίλ, Ταταρικά, Ταϊλανδεζικά, Τελούγκου, Τζαβανεζικά, Τούρκικα, Τσεχικά, Τσιτσέουα, Φιλιπινεζικά, Φινλανδικά, Φριζιανά, Χάουσα, Χίντι, Χαβαϊκά, Χμερ, Χμονγκ, τουρκμενικά, γλώσσα της μετάφρασης.

Copyright ©2025 I Love Translation. All reserved.

E-mail: