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

Άποψη: 12385|Απάντηση: 0

[Επικοινωνία] Οδηγός ευπάθειας ασφαλείας επικύρωσης κωδικού πρόσβασης δήλωσης MSSQL 2011

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 26/11/2014 3:47:51 μ.μ. | | |
Ως διεθνής τυπική δήλωση ερωτήματος βάσης δεδομένων, οι δηλώσεις SQL έχουν χρησιμοποιηθεί ευρέως σε διάφορα περιβάλλοντα προγραμματισμού. Ως ώριμο και σταθερό σύστημα, η σύνδεση χρήστη και η επαλήθευση κωδικού πρόσβασης είναι απαραίτητες. Στην καθημερινή μου εργασία προγραμματισμού, διαπίστωσα ότι πολλοί προγραμματιστές χρησιμοποιούν δηλώσεις SQL για να επαληθεύσουν τους κωδικούς πρόσβασης των χρηστών μέσω μιας δήλωσης όπως αυτή:
sql="Επιλέξτε * από τον πίνακα χρήστη όπου name='"+name+"' και password='"+password+"'"
Το όνομα και ο κωδικός πρόσβασης είναι τα ονόματα χρήστη και οι κωδικοί πρόσβασης που εισάγει ο χρήστης και οι παραπάνω δηλώσεις εκτελούνται για να επαληθευτεί εάν ο χρήστης και ο κωδικός πρόσβασης είναι νόμιμοι και έγκυροι. Ωστόσο, μέσω της ανάλυσης, μπορεί να διαπιστωθεί ότι υπάρχουν μοιραία κενά στις παραπάνω δηλώσεις. Όταν εισάγουμε την ακόλουθη συμβολοσειρά στο όνομα χρήστη: 111'ή'1=1, στη συνέχεια εισάγουμε τον κωδικό πρόσβασης τυχαία, τον ορίζουμε σε aaaa. Μετά την αντικατάσταση της μεταβλητής, η πρόταση SQL γίνεται η ακόλουθη συμβολοσειρά:
sql="Επιλέξτε * από τον πίνακα χρήστη όπου name='111'or'1=1' και password='aaaa'
Όλοι γνωρίζουμε ότι όταν η δήλωση επιλογής κρίνει τις συνθήκες ερωτήματος, θα αγνοήσει τις ακόλουθες και (και) λειτουργίες κατά την αντιμετώπιση ή (ή) λειτουργίες και η τιμή 1=1 στην παραπάνω δήλωση είναι πάντα αληθής, πράγμα που σημαίνει ότι ανεξάρτητα από την τιμή που εισάγεται στον κωδικό πρόσβασης, μπορεί να περάσει την παραπάνω επαλήθευση κωδικού πρόσβασης! Η λύση σε αυτό το πρόβλημα είναι πολύ απλή και υπάρχουν πολλές μέθοδοι, η πιο συχνά χρησιμοποιούμενη είναι να κριθεί η νομιμότητα του χρήστη και ο κωδικός πρόσβασης που εισήγαγε ο χρήστης πριν από την εκτέλεση επαλήθευσης και δεν επιτρέπονται ειδικοί χαρακτήρες όπως μονά εισαγωγικά και σύμβολα ίσου.
Τα παραπάνω προβλήματα, αν και μπορεί να φαίνονται απλά, υπάρχουν. Για παράδειγμα, η πρώιμη έκδοση του διάσημου διαδικτυακού παιχνιδιού "Smiling Proud Jianghu" στο Διαδίκτυο είχε ένα τέτοιο πρόβλημα και ο συγγραφέας ανέλυσε επίσης προσεκτικά ορισμένα από τα προγράμματα που είχε γράψει στο παρελθόν αφού διάβασε την αναφορά ευπάθειας σχετικά με αυτό το παιχνίδι και υπήρχαν πολλά τέτοια κενά. Αυτό πρέπει πραγματικά να είναι η προσοχή μας. Αυτό εκθέτει επίσης την έλλειψη εμπειρίας προγραμματισμού και ευαισθητοποίησης σε θέματα ασφάλειας των νέων προγραμματιστών, συμπεριλαμβανομένου του συγγραφέα. Ταυτόχρονα, μας υπενθυμίζει επίσης ότι οι προγραμματιστές πρέπει να λαμβάνουν πλήρως υπόψη την ασφάλεια του προγράμματος κατά το σχεδιασμό του προγράμματος και δεν πρέπει να είναι ατημέλητοι και μια φαινομενικά μικρή παράλειψη μπορεί να προκαλέσει σοβαρές συνέπειες.




Προηγούμενος:Ασφάλεια βάσης δεδομένων SQL 2005 και ακεραιότητα αναφορών
Επόμενος:2011 MSSQL System Security SA Οδηγός κινδύνου ασφάλειας ασθενούς κωδικού πρόσβασης
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com