Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> PHP /MySQL Προγραμματισμός

Αποδράστε Ερώτημα για MySQL σε Python

Python , μια γλώσσα προγραμματισμού που είναι εξοπλισμένα με δυναμική σημασιολογία , είναι ένα από τα αγαπημένα ανάμεσα στους προγραμματιστές και προγραμματιστές , αλλά το ίδιο είναι και MySQL . Ενσωμάτωση της MySQL με την Python συχνά δεν είναι μεγάλο πρόβλημα για τους έμπειρους προγραμματιστές , αλλά κωδικοποίηση μπορεί να πάρει λίγο μπερδεμένη λόγω της C API για να _mysql χαρτογράφηση λειτουργία . Διαφυγής είναι ένα από αυτά τα προβλήματα . MySQLdb
Η

Για τη βάση δεδομένων API Python , MySQLdb είναι συχνά το όπλο της επιλογής . Προγραμματιστές μπορούν να αποφύγουν την άμεση εγγραφή σε μονάδα χρησιμοποιώντας το περιβάλλον MySQL . Αυτό επιτρέπει την εφαρμογή της MySQL C API , αλλά αυτό δεν μπορεί πάντα να είναι μια απλή υπόθεση . MySQL C API έχει τη δική του object-oriented μεθόδους του. Όταν εργάζεστε με λειτουργίες διαφυγής , " mysql_escape_string ( ) " μεταφράζεται σε MySQL ως " _mysql.escape_string ( ) . " Το θέμα με αυτή τη στρατηγική είναι ότι χωρίς την κατάλληλη διαφυγή για τη MySQL σε Python , μπορεί να υπάρχουν προβλήματα που συνδέονται με πολύπλοκες χορδές , δεδομένου ότι δεν μπορεί να διαφύγει σωστά .
εικόνων εισαγωγή μεταβλητές
Η

Ένα άλλο πρόβλημα παρουσιάζεται όταν προγραμματιστές εισάγετε μεταβλητές MySQL πίνακες . Στο παρακάτω απόσπασμα , ο κωδικοποιητής εισάγει τέσσερις μεταβλητές σε έναν πίνακα .

Cursor.execute ( " " " INSERT INTO ντουλάπι ( παπούτσια , κάλτσες , legwarmer , άνω ) ΑΞΙΕΣ ( nike , puma , μαλλί , adidas ) " " " )

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

Η Ποσοστό Είσοδος
Η

Οι τροποποιητές η δήλωση SQL που είναι υπεύθυνη για την δέσμευση των παραμέτρων μπορεί να είναι μια μικρή σύγχυση . σύνταξη " Printf " στυλ χρησιμοποιείται συνήθως στη βιβλιοθήκη MySQL πελάτη. Το αναθεωρημένο απόσπασμα θα πρέπει στη συνέχεια να μοιάζει κάπως έτσι:

cursor.execute ( " " " INSERT INTO ντουλάπι ( παπούτσια , κάλτσες , legwarmer , άνω ) ΑΞΙΕΣ ( % ( nike ) s , % ( puma ) s , % ( μαλλί ) s , % ( adidas ) s ) " " " )

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

Ο προγραμματιστής μπορεί να είναι σε θέση να φτιάξετε ένα ασφαλές , που εργάζονται κώδικα με την προσθήκη περαιτέρω αλλαγές στον κώδικα . Εδώ είναι το τελικό απόσπασμα εργασίας:

cursor.execute ( " " " INSERT INTO Τραγούδια ντουλάπι ( παπούτσια , κάλτσες , legwarmer , άνω ) ΑΞΙΕΣ ( % s , % s , % s , % s ) " ? " " , ( nike , puma , μαλλί , adidas ) )

Ένα άλλο πρόβλημα μπορεί να προκύψει με το ποσοστό σύμβολο . Εάν ο κωδικοποιητής χρησιμοποιεί ένα σύμβολο ποσοστού στο σενάριο , ( ειδικά στο query string , « παραλείποντας να εκτελέσει ( ) " ) , πρέπει να είναι κατάλληλα δραπετεύσει - θα πρέπει να χρησιμοποιηθούν δύο σημεία μονάδες. Ένα από τα σημάδια ποσοστό θα λειτουργήσει ως το αναγνωριστικό για διαφυγή .
Η
εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα